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.
    • 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
                                        • Z
                                          Zelkin @ticaki last edited by

                                          @ticaki
                                          Ist es auf diese art nicht evtl. möglich in mehreren Räumen gleichzeitig anwesend zu sein?
                                          Wenn Ich das Richtig Verstanden habe, bist du anwesend im Raum sobald du die iobroker distance unterschreitest, somit kannst du die räume nicht überschneidend anlegen und es entstehen Tot Zonen oder doppelte Anwesenheiten?

                                          Hier mal mein Blockly zur ermittlung des aufenthaltes:
                                          vivaldi_azREIXBfGT.png

                                          Danach Werte Ich für jeden Raum im 10 Sekunden Takt aus wenn anwesenheit gegeben ist:
                                          vivaldi_EXXxPDVmmM.png

                                          Dazu hab Ich die ESPs so Platziert, dass man entweder aus der distance fliegt oder eben noch zu nahe am gerät ist in jedem raum.

                                          PS.: Hab 0.5.0 noch nicht im test, probier ich am WE aus 😊

                                          Neuschwansteini T 2 Replies Last reply Reply Quote 0
                                          • Neuschwansteini
                                            Neuschwansteini @Zelkin last edited by

                                            @zelkin

                                            Gute Idee mit der Liste!
                                            Man muss halt sebst herausfinden, in welchem Raum welcher Abstand ideal ist.. die Dinge messen hier auch teilweise durch die Decke/Waende, was wieder etwas ungluecklich ist.. 🙂 wenn sie nicht in der Mitte des Raumes platziert sind..

                                            Ist wieder so ein Design/Waf problem.. ich bekomm die nicht in jede Lampe oder in die Decke in der Mitte des Raumes.. und dann messen die ja nach oben, was auch bloed ist.. wenn man im Stockwerk drueber ist.. 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            715
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            154
                                            12142
                                            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