Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter espresense

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter espresense

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki Developer @fichte_112 last edited by

      @fichte_112
      Ja... hab jetzt 10 Minuten die Stelle debugt bis mir aufgefallen ist dass da ein return fehlt wegen der klammern...

      Update wird erstellt

      1 Reply Last reply Reply Quote 1
      • T
        ticaki Developer last edited by ticaki

        v0.4.7

        • Entfernen von Geräten hinzugefügt * hust * 😄
        F 1 Reply Last reply Reply Quote 1
        • F
          fichte_112 @ticaki last edited by

          @ticaki Vielen Dank für die schnelle Umsetzung.
          Ich kann aber kein Device aus der Mitte der Tabelle löschen. Es werden von unten nach oben die Devices gelöscht. Egal welches man markiert hat. Momentan kann man nur alle löschen und die Tabelle neu erstellen. Man kann auch keinen Namen vergeben. Ich benutze auch Transponder zur Anwesenheitserkennung. Diese haben dann als Namen ihre ID (z.B. known:dd7a8218b090). Es wäre schön, wenn man diesen einen eindeutigen Namen (z.B. Transponder weiß) vergeben könnte.

          T 1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer @fichte_112 last edited by ticaki

            @fichte_112
            Och man Kopf -> Wand
            eine Zeile tiefer hat auch ein return gefehlt bzw. die Klammern entfernt damits ohne return geht...

            Ich hab die Tabelle mal änderbar gemacht bei den Namen, nicht bei den ID's
            Ebenso sollte sich der Ordner namen ändern, aber nicht die id.

            Jedoch sollten die Namen eigentlich vom espresence kommen, da man sie dort für alle verbunden definieren kann.

            Bitte mal von github ziehen und testen bevor ich ein release erstelle

            F Neuschwansteini 2 Replies Last reply Reply Quote 0
            • F
              fichte_112 @ticaki last edited by

              @ticaki Das ging ja fix. Es funktioniert alles. Vielen Dank.

              1 Reply Last reply Reply Quote 0
              • Neuschwansteini
                Neuschwansteini @ticaki last edited by

                @ticaki

                Danke, das loeschen geht hier jetzt auch 🙂 und genauso, wie das hinzufuegen vorher funktioniert hat.. 🙂

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @Neuschwansteini last edited by ticaki

                  @ilovegym sagte in Test Adapter espresense:

                  @ticaki

                  Danke, das loeschen geht hier jetzt auch 🙂 und genauso, wie das hinzufuegen vorher funktioniert hat.. 🙂

                  wie das hinzufuegen vorher funktioniert hat..

                  hm 2 punkte betonung auf vorher? Ist das ein versteckter verbesserungsvorschlag? 😄

                  Ich schau mal sebst, admin zu testen ist mit der entwicklungsumgebung bissle nervig

                  Neuschwansteini 1 Reply Last reply Reply Quote 0
                  • Neuschwansteini
                    Neuschwansteini @ticaki last edited by

                    @ticaki

                    nein nein, lass das so wie es ist, man kapiert es und es funktioniert. 🙂
                    Der Adapter laeuft, wird weder Warning noch error und macht was er soll. -> fertig.

                    investier lieber dein Dev-IQ in NSPaneladapter oder so..

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      ticaki Developer @Neuschwansteini last edited by

                      @ilovegym sagte in Test Adapter espresense:

                      @ticaki
                      investier lieber dein Dev-IQ in NSPaneladapter oder so..

                      Ja der Adapter - wenn das konfigurieren nicht wäre, wäre der fast fertig... war er schon letzten Jahr im März - aber keiner kann react und mit jsonconfig.json geht das echt nicht.

                      Neuschwansteini 1 Reply Last reply Reply Quote 1
                      • Neuschwansteini
                        Neuschwansteini @ticaki last edited by Neuschwansteini

                        @ticaki

                        Hab mir gerade ein kleines Blockly geschrieben, das mir den Raum ausgibt, wenn ein Device im Abstand kleiner 2m ist - damit sollte das Device auch in dem Raum vorhanden sein..
                        Da ich mir den Raumnamen aus dem State / Channel ausgeben lasse, wird der leider klein geschrieben.. im ESP ist er aber richtig, so wie ich ihn haette.. wandelst du da irgendwo?

                        Kann ich das aendern, damit es dauerhaft bleibt oder magst da ein Update machen? 🙂
                        Am liebsten ne Tabelle, wo ich die Raeume bennenen kann.. also mit Leerzeichen etc.. damits schick aussieht.. aber das ist dann schon auf High-End.. 🙂
                        Edit:
                        hab insgesamt 23 Raeume, zur Zeit sind 14 angelegt mit ESP-Presence. Warte auf Lieferung..

                        Edit2:
                        am aller aller aller liebsten wenn du sowas gleich in den Adapter einbaust.. 🙂
                        Wieder ein Script gespart.. aber muss nicht sein.. geht auch so

                        Blockly:
                        Screenshot 2025-01-28 at 13.21.04.png

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <block type="on_ext" id="^qPiKQ+R3[QXPnKS1*m6" x="337" y="-38">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="PU.UOefvQw/E3/!PmRee">
                               <field name="oid">ID auswählen</field>
                             </shadow>
                             <block type="selector" id="dAyJ?LVmpU$(Paf(){O9">
                               <field name="TEXT">channel[state.id=espresense.0.devices.phone_iphonebernd.*.distance]</field>
                             </block>
                           </value>
                           <statement name="STATEMENT">
                             <block type="controls_if" id="1!Z`xi{rj21A!{`vU7?T">
                               <value name="IF0">
                                 <block type="logic_multi_and" id="Z;}%5L(?:v=2$0o,a/Cj">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                   <value name="AND0">
                                     <block type="logic_compare" id="#?2|rJv`WS~gF~B8+lSu">
                                       <field name="OP">LT</field>
                                       <value name="A">
                                         <block type="on_source" id="^BSoQ_SW`.Gp7aXL[7~R">
                                           <field name="ATTR">state.val</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="im%6fr]T~!*qWfVQz}c7">
                                           <field name="NUM">2</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <value name="AND1">
                                     <block type="logic_compare" id="-{3;L/WIab[L$:d{?:wp">
                                       <field name="OP">GT</field>
                                       <value name="A">
                                         <block type="on_source" id="mUWidq.2Bbz##Jlz`G7N">
                                           <field name="ATTR">state.val</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="PZpwEH5eT|E:l#NNTLz#">
                                           <field name="NUM">0</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="control" id="NC0}wyFAydYsFltyJs~h">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">0_userdata.0.Presence.Iphones.iphoneBernd</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="text_join" id="ePuhwBMMgAZ0%J}e0L:W">
                                       <mutation items="4"></mutation>
                                       <value name="ADD0">
                                         <block type="text" id="+%gRSi.-$![xdU#({T*8">
                                           <field name="TEXT">Iphone Bernd ist </field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="on_source" id="2w?9KUa*JxD21hjtN4U(">
                                           <field name="ATTR">state.val</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="text" id="W.F?Z^82kYxY7*vSD(m@">
                                           <field name="TEXT"> m entfernt in Raum </field>
                                         </block>
                                       </value>
                                       <value name="ADD3">
                                         <block type="on_source" id="p5_n)78*DC{TigTbTG!P">
                                           <field name="ATTR">channelName</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                             </block>
                           </statement>
                           <next>
                             <block type="on" id="?h.gsszL,$V%Uhk,e(Nq">
                               <field name="OID">espresense.0.devices.phone_iphonebernd.presense</field>
                               <field name="CONDITION">ne</field>
                               <field name="ACK_CONDITION"></field>
                               <statement name="STATEMENT">
                                 <block type="controls_if" id="wF52^1L:3cw(]hzs~=mf">
                                   <value name="IF0">
                                     <block type="logic_negate" id=".bnU.ra^3a@Ofq2FVdZO">
                                       <value name="BOOL">
                                         <block type="on_source" id="p[kytF5^1BUwP|Gh:/F(">
                                           <field name="ATTR">state.val</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="control" id="Gy:CnDx@aw=N-S:2^hIF">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">0_userdata.0.Presence.Iphones.iphoneBernd</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="text" id="sUa6q_*QGS%-^rG6#1:2">
                                           <field name="TEXT">Iphone Bernd ist nicht im Hause!</field>
                                         </block>
                                       </value>
                                     </block>
                                   </statement>
                                 </block>
                               </statement>
                               <next>
                                 <block type="on_ext" id="AoE,iE7QT6rpn$I;4W2%">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                   <field name="CONDITION">ne</field>
                                   <field name="ACK_CONDITION"></field>
                                   <value name="OID0">
                                     <shadow type="field_oid" id="PU.UOefvQw/E3/!PmRee">
                                       <field name="oid">ID auswählen</field>
                                     </shadow>
                                     <block type="selector" id="Uav0pK%klpeuR9`mt4]I">
                                       <field name="TEXT">channel[state.id=espresense.0.devices.phone_iphoneisa.*.distance]</field>
                                     </block>
                                   </value>
                                   <statement name="STATEMENT">
                                     <block type="controls_if" id="okY0L2?Wd=HE5QVL*6do">
                                       <value name="IF0">
                                         <block type="logic_multi_and" id="xv:3RDES97R72SQ.?KaQ">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                           <value name="AND0">
                                             <block type="logic_compare" id="xVjbk=N~U%e)#hO^cZL@">
                                               <field name="OP">LT</field>
                                               <value name="A">
                                                 <block type="on_source" id="{NrWSlil@4npl$.j_h[/">
                                                   <field name="ATTR">state.val</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="math_number" id="J;(lR(=$rMIiSe8X^j,D">
                                                   <field name="NUM">2</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="AND1">
                                             <block type="logic_compare" id="2{_zEJMJ01QR@:04LZUx">
                                               <field name="OP">GT</field>
                                               <value name="A">
                                                 <block type="on_source" id="Vu4*QLN~y3y#JoPvp`w{">
                                                   <field name="ATTR">state.val</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="math_number" id="DyyXYk3r|e7b^G$|3~27">
                                                   <field name="NUM">0</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="control" id=".!)*TvaE@ic/YD*Fq6?g">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">0_userdata.0.Presence.Iphones.IphoneIsa</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="text_join" id="0w6FtiPrw`|qk%$PV?au">
                                               <mutation items="4"></mutation>
                                               <value name="ADD0">
                                                 <block type="text" id="W+G==?W1aZT}|)bcOnZ(">
                                                   <field name="TEXT">Iphone Isa ist </field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="on_source" id="tCB$+a9K`kDr7,dTNq*}">
                                                   <field name="ATTR">state.val</field>
                                                 </block>
                                               </value>
                                               <value name="ADD2">
                                                 <block type="text" id="mB?#Jd/di6doX,on[Jw/">
                                                   <field name="TEXT"> m entfernt in Raum </field>
                                                 </block>
                                               </value>
                                               <value name="ADD3">
                                                 <block type="on_source" id="K.Wo~XdZ%l!i74;|JB@u">
                                                   <field name="ATTR">channelName</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </statement>
                                   <next>
                                     <block type="on" id="K2FI:oDMnuOj?:U:7Gxa">
                                       <field name="OID">espresense.0.devices.phone_iphoneisa.presense</field>
                                       <field name="CONDITION">ne</field>
                                       <field name="ACK_CONDITION"></field>
                                       <statement name="STATEMENT">
                                         <block type="controls_if" id="tCuX$?z_CtB(Tx)~%1,-">
                                           <value name="IF0">
                                             <block type="logic_negate" id="bFYD-l(wbFqAwKv@ZPv(">
                                               <value name="BOOL">
                                                 <block type="on_source" id="s2@#t1_9;mR|!UcesIzU">
                                                   <field name="ATTR">state.val</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <statement name="DO0">
                                             <block type="control" id="#?8gA]t1+`HRTObLznA+">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">0_userdata.0.Presence.Iphones.IphoneIsa</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="text" id="XH;]%A{9(`^=R(PJmf[7">
                                                   <field name="TEXT">Iphone Isa ist nicht im Hause!</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </statement>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                        </xml>
                        

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          ticaki Developer @Neuschwansteini last edited by

                          @ilovegym

                          Schau mal ob sich das mit dem offenen issue auf GitHub deckt

                          Neuschwansteini 1 Reply Last reply Reply Quote 0
                          • Neuschwansteini
                            Neuschwansteini @ticaki last edited by

                            @ticaki

                            ja, ist eigentlich recht einfach, ich waere ja schon mit huebschen Raumnamen zufrieden, der Rest macht das script..

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              ticaki Developer @Neuschwansteini last edited by ticaki

                              @ilovegym
                              Bildschirmfoto 2025-01-28 um 20.21.30.png

                              so was z.B.?

                              Neuschwansteini 1 Reply Last reply Reply Quote 0
                              • Neuschwansteini
                                Neuschwansteini @ticaki last edited by

                                @ticaki
                                Ja super ! 👍

                                T 1 Reply Last reply Reply Quote 0
                                • T
                                  ticaki Developer @Neuschwansteini last edited by

                                  @ilovegym

                                  Datenformat hat sich geändert daher hats nicht mehr funktioniert - node:blabla heißt der raum jetzt außer er kommt als topic dann hat er kein node:...

                                  Egal hab noch 2 Fehler gefunden. Und baue das Konvertieren um, das ist nervig.

                                  1 Reply Last reply Reply Quote 1
                                  • T
                                    ticaki Developer last edited by ticaki

                                    v0.5.0

                                    • (ticaki) Simple room detection integrated
                                    • (ticaki) Friendly room name added to devices
                                    • (ticaki) global commands now work.
                                    • (ticaki) Data point var added.

                                    Also wirklich sehr simple - unter rooms gibts jetzt nen Datenpunkt max_distance_iobroker. Dort pro esp eintragen was im Raum bedeuten soll - dann wird unter Device.room der presense state abhängig von der Entfernung geschaltet - in dem Fall wird auch der übergeordnete presense nur dann true, wenn einer der darunterliegenden true ist. Ohne die Einstellung (-1) bleibt alles wie gehabt.

                                    Bei der Verwendung von max_distance im esp bekommt der Adapter keine Meldung wenn das Gerät den Bereich verlässt und kann daher nur auf den intenen "timeout" warten.

                                    Hab auch die wlan icons an geschaltet 🙂 und ein paar roles gefixt.

                                    ARGH hab vergessen das Konvertieren in die changelogs zu schreiben 😄 - da gibts jetzt einen State wo man die tatsächliche Entfernung rein schreibt und einen anderen in dem der Adapter den verwendeten Faktor anzeigt.

                                    1 Reply Last reply Reply Quote 0
                                    • Neuschwansteini
                                      Neuschwansteini last edited by

                                      @ticaki

                                      Danke fuer das update.. so ganz kapieren tu ich es leider nicht.. ( hab erst ein Kaffee...)

                                      wo stell ich denn jetzt was genau ein? Es gibt jetzt n Sackvoll Datenpunkte, wo ich den max_distance_iobroker einstellen kann.. welche sind richtig?

                                      Und.. welche sind denn die States, wo man die tatsaechliche Entfernung und welcher ist das, den der Adapter dann anzeigt?? 🙂

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        ticaki Developer @Neuschwansteini last edited by ticaki

                                        @ilovegym

                                        Der Kram kommt so vom esp 🙂 Ich werfe nur noch ne Handvoll States dabei

                                        Bildschirmfoto 2025-01-29 um 10.10.21.png

                                        das ohne iobroker ist der filter auf dem esp - das mit iobroker ist der filter vom adapter. Der esp schickt solange positionsdaten wie er das Gerät findet und seine max distance nicht überschritten ist

                                        Bildschirmfoto 2025-01-29 um 10.10.05.png

                                        Die Adapter interne im Raumabstandserkennung geht mit dem state im ersten Bild und distanceConverted - distanceConverted ermittelt sich aus distance * convertFaktor.
                                        convertFaktor wiederrum wird ermittelt wenn du in convert die aktuelle Entfernung vom esp zum Gerät(iphone) eintragst.

                                        presense im Bild zeigt dir an ob das Gerät in diesem Raum ist.

                                        das presense eine etage höher zeigt an ob irgendein gerät in irgendeinem raum ist - das schalten auf false von diesem Datenpunkt hängt mit der Zeit zusammen die man im Admin einstellt.

                                        In Rooms sind die Daten die den einzelnen esp betreffen in Devices die der entdeckten Geräte. In Rooms sind einige Datenpunkte beschreibbar, damit kannst du die Einstellungen dieses Datenpunktes auf dem esp verändern.

                                        Wenn du nen Vorschlag hast, wie ich das besser lösen kann, damit verständlicher wird her damit.

                                        EDIT: Ich hab auch kein Problem ein Breaking zu machen, hab nur keine Idee, wie ich das anders machen soll.

                                        Neuschwansteini Z 2 Replies Last reply Reply Quote 0
                                        • Neuschwansteini
                                          Neuschwansteini @ticaki last edited by

                                          @ticaki

                                          Danke, ok, kapiert, bin am testen...lass mal so.. 🙂

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            ticaki Developer @Neuschwansteini last edited by

                                            @ilovegym

                                            hab nur den presense eine etage höher falsch beschrieben, natürlich ist der nicht für irgendein Gerät sondern für das wo drin liegt 🙂

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            764
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            154
                                            12143
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo