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 goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Test Adapter espresense

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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
                                      • Z
                                        Zelkin @Neuschwansteini last edited by

                                        @ilovegym

                                        Das Problem hat mich auch schon beschäftigt!
                                        Ich hab es noch nicht ausprobiert, aber sollte eine wenig Alufolie bzw ein Blech über dem ESP nicht ausreichen um eine Messung nach oben zu vermeiden bzw dementsprechend zu erschweren??

                                        Mein Plan ist es Irgendwann einen kleinen Zero w mit Rhasspy als Sprachassi und im Deckel der ESP mit Abschirmung nach oben für die Raumerkennung zu betreiben.
                                        Das ganze mit nem net gedruckten Chassis und alles per POE
                                        --> PiZero Hat mit den 3 usb anschlüssen betreibt dann sowohl die usb lautsprecher als auch den esp und den Pi Zero

                                        Probeweise mit Luftverkabelung läuft das System derzeit in meinem WZ

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

                                          @zelkin
                                          Ja steht ja extra das es eine sehr einfach Version ist 🙂

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

                                            @zelkin

                                            Ich hab da ne sehr einfach Version drin, weil eigentlich müsste mal durch Trilateration die Position bestimmen und das gegen eine Liste von "guten" Positionen abgleichen. Bei mir schwanken die Messwerte jedoch so stark, das ich nicht glaube dass das zuverlässig funktioniert.

                                            So hatte ich das ursprünglich auch geplant. Natürlich wäre es auch möglich einfach den ESP mit dem geringsten "distance / max Distance" als gewinner zu kühren, hm aber ist dass dann wirklich ein nutzvoller state... und wie soll der dann heißen 😄

                                            Neuschwansteini Z 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            945
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            153
                                            10509
                                            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