Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. G-Tag, IBeacon, Anwesenheitserkennung

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    346

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

G-Tag, IBeacon, Anwesenheitserkennung

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
g-tagibeacon anwesenheitserkennung
99 Beiträge 17 Kommentatoren 13.4k Aufrufe 19 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • lobomauL lobomau

    @haselchen mit einem zweiten Trigger auf den HM BWM müsste es gehen. Ich würde zusätzlich als Bedingung reinnehmen, dass das Licht auch aus ist um den Funktraffic zu minimieren (Licht muss ja nicht angeschaltet werden, wenn es schon an ist).

    M Offline
    M Offline
    moses123
    schrieb am zuletzt editiert von
    #57

    Viele Wege führen nach Rom ...

    Ich habe das Ganze für das Ein- und Ausschalten der HMIP Alarmfunktion mit den GTags und dem BLE- Adapter gemacht.

    Der BLE Adapter schreibt alle paar Sekunden die Signalstärke der GTags in einen State pro GTAG.

    Jedes mal, wenn die Signalstärke geschrieben wird, dann setzte ich eine Variable auf TRUE, das der entsprechende GTag da ist.

    Nur wenn die Variable auf TRUE geändert wird, dann deaktiviere ich die Alarmanlage. Im Fall hier könnte dann das Licht im Carport eingeschaltet werden.

    Auf FALSE wird die Variable gesetzt, wenn der Zeitstempel der letzten Änderung der Signalstärke > 60 Sekunden ist. Und nur bei der Änderung der Variable auf FALSE wird die Alarmanlage aktiviert.

    Gruß,
    Moses123

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      marsmännchen
      schrieb am zuletzt editiert von
      #58

      @Maik-0
      Ich versuche auch gerade meine Anwesenheitserkennung mit Esp32 und Beacon zu basteln.
      Ich hab nur ständige Verbindungsabbrüche des ESP32 zum WLan, und sonstige problemchen.
      Wobei du mir aber helfen könntest:
      Du bekommst einen RSSI Wert vom ESPHome-Adapter ist das richtig?
      Ich mache es jedenfalls so, nur wenn ich den Trigger "falls rssi wurde aktualisiert" benutze und die beacon sind nicht erreichbar, wird der rssi nicht mehr aktualisiert.
      Ich habe die absolut wahnsinnige Zauberei um es halbwegs zuverlässig zu erfassen:

      <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="rGM/6a0x(,3^[f[%$e=." x="513" y="-437">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">any</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="Ke)Im[.t$Xcb$/||[XsD">
            <field name="oid">esphome.0.A848FA9B5288.Sensor.3257868514.state</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="timeouts_setinterval" id=",x_Wi31gf8)n(%qaO8ki">
            <field name="NAME">Intervall</field>
            <field name="INTERVAL">4</field>
            <field name="UNIT">sec</field>
            <statement name="STATEMENT">
              <block type="update" id="@n}$bxzS:xt}=0e8Ge7p">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                <field name="OID">0_userdata.0.Anwesenheit.Pnutrssi</field>
                <field name="WITH_DELAY">TRUE</field>
                <field name="DELAY_MS">8</field>
                <field name="UNIT">sec</field>
                <field name="CLEAR_RUNNING">FALSE</field>
                <value name="VALUE">
                  <block type="get_value" id="+R*fQ.`WM?fu3@Q_:Kgs">
                    <field name="ATTR">val</field>
                    <field name="OID">esphome.0.A848FA9B5288.Sensor.3257868514.state</field>
                  </block>
                </value>
              </block>
            </statement>
            <next>
              <block type="controls_if" id="^H%xiJnQ{#f;h53W.2,G">
                <mutation else="1"></mutation>
                <value name="IF0">
                  <block type="logic_compare" id="QnVmO-JQvSY5AC1,j]-.">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="NaV%!cuNA1!4Xs]J$Jxc">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Anwesenheit.Pnutrssi</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_operation" id="De1sb$x$:gWSRH9H=.fN">
                        <field name="OP">OR</field>
                        <value name="A">
                          <block type="get_value" id="Q{@RL-*lP%*]ij2j}#6H">
                            <field name="ATTR">val</field>
                            <field name="OID">esphome.0.A848FA9B5288.Sensor.3257868514.state</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_null" id="%9{t2tsMkc`{~0kgjhID"></block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="math_change" id="oZ?mPBj.Rv*VeHctx#,T">
                    <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                    <value name="DELTA">
                      <shadow type="math_number" id="7!07YDKL7.2yTT[S6Xl]">
                        <field name="NUM">1</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="variables_set" id="pXe:WH+5wUmtMt68747N">
                        <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                        <value name="VALUE">
                          <block type="math_number" id="pzx~p.=w?G%l$.?OVGX#">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                        <next>
                          <block type="debug" id="d2ue#BIG[QLu9#JG#,at">
                            <field name="Severity">debug</field>
                            <value name="TEXT">
                              <shadow type="text">
                                <field name="TEXT">test</field>
                              </shadow>
                              <block type="text_join" id="Gf6zNnnr~j#FsWO/s:_a">
                                <mutation items="3"></mutation>
                                <value name="ADD0">
                                  <block type="text" id="*|7au5VmBygvu[v?WU{2">
                                    <field name="TEXT">awayCount:</field>
                                  </block>
                                </value>
                                <value name="ADD1">
                                  <block type="variables_get" id="dG7Tipl~/@R}GzQ8sKlF">
                                    <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                                  </block>
                                </value>
                                <value name="ADD2">
                                  <block type="get_value" id="l0n^o^!0I0oRkL.l0(Bk">
                                    <field name="ATTR">val</field>
                                    <field name="OID">0_userdata.0.Anwesenheit.Pnutrssi</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <statement name="ELSE">
                  <block type="math_change" id="J#-HL,WRdHR/1xbv,gI.">
                    <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                    <value name="DELTA">
                      <shadow type="math_number" id="dit@K0Wk;EE=K#$z]x$e">
                        <field name="NUM">1</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="variables_set" id="E4eHQdX,._YGqR1|.O-1">
                        <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                        <value name="VALUE">
                          <block type="math_number" id="][%p#n_BZ82Z{p$-8^K(">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                        <next>
                          <block type="debug" id="b,`r91eD(%8DNTaC;l=.">
                            <field name="Severity">debug</field>
                            <value name="TEXT">
                              <shadow type="text">
                                <field name="TEXT">test</field>
                              </shadow>
                              <block type="text_join" id="^w-9%o)0a^{-%e_8P:0x">
                                <mutation items="2"></mutation>
                                <value name="ADD0">
                                  <block type="text" id="n..iEeaG+.h}[j-XEtJw">
                                    <field name="TEXT">presentCount:</field>
                                  </block>
                                </value>
                                <value name="ADD1">
                                  <block type="variables_get" id="deEHCo`E).s.!Bck^r35">
                                    <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="@crrhoDO#B=iavWIG3+I">
                    <value name="IF0">
                      <block type="logic_compare" id="pM7-++%2(DwKnm[p`4E~">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="variables_get" id="5QHo#rswQab_`pZ%x8U5">
                            <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="%Ao_A}Yi(a$:F;Nigg3H">
                            <field name="NUM">10</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="z2sp:nmr12kP3*rqh3~n">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Anwesenheit.Patrick_anweseheit</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="H`##WiJF`MjC.GZUbZ@B">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="=/ZWrT1D=RcjUWJOrBi4">
                            <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                            <value name="VALUE">
                              <block type="math_number" id="ks_;K}^:8o5HonxvUl9S">
                                <field name="NUM">0</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </statement>
                    <next>
                      <block type="controls_if" id="sl2;W5?aG:?h.=JPUL1/">
                        <value name="IF0">
                          <block type="logic_compare" id="MN(/Mj`S`r*hfFo6J11+">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="variables_get" id="z|tjgy?uYXO8(rFVSdFZ">
                                <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="|:B6J+V,5/E-,lS)~FhQ">
                                <field name="NUM">4</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="control" id="1Zf|bgBtg[EQ;VLMktA?">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Anwesenheit.Patrick_anweseheit</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="RK66d3=~rHgwKW2DG|S5">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                            <next>
                              <block type="variables_set" id="_(1g.LSHR+!M92BMy[V)">
                                <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                                <value name="VALUE">
                                  <block type="math_number" id="Nv|B-hM3oZuo_:ryL[F:">
                                    <field name="NUM">0</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
      

      beacon1.JPG

      Ich glaube nicht das das wirklich schlau von mir ist, aber.. na ja.
      Mein ESPHome Yaml sieht so aus:

      esphome:
        name: esp32presence
        platform: ESP32
        board: esp32dev
      
      # Enable logging
      logger:
      
      # Enable Home Assistant API
      api:
       
      
      ota:
        
      
      wifi:
        ssid: "DieSSID"
        password: "passwort"
        power_save_mode: LIGHT
      
        manual_ip:
          static_ip: 192.10.10.10
          gateway: 192.10.10.11
          subnet: 255.255.255.0
      
      
        
        ap:
          ssid: "Esp32presence Fallback Hotspot"
          password: "passwort"
      
      captive_portal:
      esp32_ble_tracker:
        scan_parameters:
          window: 300ms
        
      sensor:
        - platform: ble_rssi
          mac_address: DF:AA:CA:AA:BB:CC
          name: "PatrickNut"
      
        - platform: ble_rssi
          mac_address: 66:CC:DD:FF:57:D7
          name: "NicoleNut"    
      

      Könntest du mir vielleicht mit deinen Scripten weiterhelfen wenn du was funktionierendes hast?
      Gruß
      Patrick

      Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
      Wago PFC200 mit Dali Lichtsteuerung.

      M 1 Antwort Letzte Antwort
      0
      • M marsmännchen

        @Maik-0
        Ich versuche auch gerade meine Anwesenheitserkennung mit Esp32 und Beacon zu basteln.
        Ich hab nur ständige Verbindungsabbrüche des ESP32 zum WLan, und sonstige problemchen.
        Wobei du mir aber helfen könntest:
        Du bekommst einen RSSI Wert vom ESPHome-Adapter ist das richtig?
        Ich mache es jedenfalls so, nur wenn ich den Trigger "falls rssi wurde aktualisiert" benutze und die beacon sind nicht erreichbar, wird der rssi nicht mehr aktualisiert.
        Ich habe die absolut wahnsinnige Zauberei um es halbwegs zuverlässig zu erfassen:

        <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="rGM/6a0x(,3^[f[%$e=." x="513" y="-437">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">any</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="Ke)Im[.t$Xcb$/||[XsD">
              <field name="oid">esphome.0.A848FA9B5288.Sensor.3257868514.state</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="timeouts_setinterval" id=",x_Wi31gf8)n(%qaO8ki">
              <field name="NAME">Intervall</field>
              <field name="INTERVAL">4</field>
              <field name="UNIT">sec</field>
              <statement name="STATEMENT">
                <block type="update" id="@n}$bxzS:xt}=0e8Ge7p">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                  <field name="OID">0_userdata.0.Anwesenheit.Pnutrssi</field>
                  <field name="WITH_DELAY">TRUE</field>
                  <field name="DELAY_MS">8</field>
                  <field name="UNIT">sec</field>
                  <field name="CLEAR_RUNNING">FALSE</field>
                  <value name="VALUE">
                    <block type="get_value" id="+R*fQ.`WM?fu3@Q_:Kgs">
                      <field name="ATTR">val</field>
                      <field name="OID">esphome.0.A848FA9B5288.Sensor.3257868514.state</field>
                    </block>
                  </value>
                </block>
              </statement>
              <next>
                <block type="controls_if" id="^H%xiJnQ{#f;h53W.2,G">
                  <mutation else="1"></mutation>
                  <value name="IF0">
                    <block type="logic_compare" id="QnVmO-JQvSY5AC1,j]-.">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="NaV%!cuNA1!4Xs]J$Jxc">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.Anwesenheit.Pnutrssi</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_operation" id="De1sb$x$:gWSRH9H=.fN">
                          <field name="OP">OR</field>
                          <value name="A">
                            <block type="get_value" id="Q{@RL-*lP%*]ij2j}#6H">
                              <field name="ATTR">val</field>
                              <field name="OID">esphome.0.A848FA9B5288.Sensor.3257868514.state</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_null" id="%9{t2tsMkc`{~0kgjhID"></block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="math_change" id="oZ?mPBj.Rv*VeHctx#,T">
                      <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                      <value name="DELTA">
                        <shadow type="math_number" id="7!07YDKL7.2yTT[S6Xl]">
                          <field name="NUM">1</field>
                        </shadow>
                      </value>
                      <next>
                        <block type="variables_set" id="pXe:WH+5wUmtMt68747N">
                          <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                          <value name="VALUE">
                            <block type="math_number" id="pzx~p.=w?G%l$.?OVGX#">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                          <next>
                            <block type="debug" id="d2ue#BIG[QLu9#JG#,at">
                              <field name="Severity">debug</field>
                              <value name="TEXT">
                                <shadow type="text">
                                  <field name="TEXT">test</field>
                                </shadow>
                                <block type="text_join" id="Gf6zNnnr~j#FsWO/s:_a">
                                  <mutation items="3"></mutation>
                                  <value name="ADD0">
                                    <block type="text" id="*|7au5VmBygvu[v?WU{2">
                                      <field name="TEXT">awayCount:</field>
                                    </block>
                                  </value>
                                  <value name="ADD1">
                                    <block type="variables_get" id="dG7Tipl~/@R}GzQ8sKlF">
                                      <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                                    </block>
                                  </value>
                                  <value name="ADD2">
                                    <block type="get_value" id="l0n^o^!0I0oRkL.l0(Bk">
                                      <field name="ATTR">val</field>
                                      <field name="OID">0_userdata.0.Anwesenheit.Pnutrssi</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                  <statement name="ELSE">
                    <block type="math_change" id="J#-HL,WRdHR/1xbv,gI.">
                      <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                      <value name="DELTA">
                        <shadow type="math_number" id="dit@K0Wk;EE=K#$z]x$e">
                          <field name="NUM">1</field>
                        </shadow>
                      </value>
                      <next>
                        <block type="variables_set" id="E4eHQdX,._YGqR1|.O-1">
                          <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                          <value name="VALUE">
                            <block type="math_number" id="][%p#n_BZ82Z{p$-8^K(">
                              <field name="NUM">0</field>
                            </block>
                          </value>
                          <next>
                            <block type="debug" id="b,`r91eD(%8DNTaC;l=.">
                              <field name="Severity">debug</field>
                              <value name="TEXT">
                                <shadow type="text">
                                  <field name="TEXT">test</field>
                                </shadow>
                                <block type="text_join" id="^w-9%o)0a^{-%e_8P:0x">
                                  <mutation items="2"></mutation>
                                  <value name="ADD0">
                                    <block type="text" id="n..iEeaG+.h}[j-XEtJw">
                                      <field name="TEXT">presentCount:</field>
                                    </block>
                                  </value>
                                  <value name="ADD1">
                                    <block type="variables_get" id="deEHCo`E).s.!Bck^r35">
                                      <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                  <next>
                    <block type="controls_if" id="@crrhoDO#B=iavWIG3+I">
                      <value name="IF0">
                        <block type="logic_compare" id="pM7-++%2(DwKnm[p`4E~">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="variables_get" id="5QHo#rswQab_`pZ%x8U5">
                              <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="%Ao_A}Yi(a$:F;Nigg3H">
                              <field name="NUM">10</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="control" id="z2sp:nmr12kP3*rqh3~n">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Anwesenheit.Patrick_anweseheit</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="H`##WiJF`MjC.GZUbZ@B">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                          <next>
                            <block type="variables_set" id="=/ZWrT1D=RcjUWJOrBi4">
                              <field name="VAR" id="@nWK-It]VKg2b:$$U)ww">awayCountP</field>
                              <value name="VALUE">
                                <block type="math_number" id="ks_;K}^:8o5HonxvUl9S">
                                  <field name="NUM">0</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </statement>
                      <next>
                        <block type="controls_if" id="sl2;W5?aG:?h.=JPUL1/">
                          <value name="IF0">
                            <block type="logic_compare" id="MN(/Mj`S`r*hfFo6J11+">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="variables_get" id="z|tjgy?uYXO8(rFVSdFZ">
                                  <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="|:B6J+V,5/E-,lS)~FhQ">
                                  <field name="NUM">4</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="1Zf|bgBtg[EQ;VLMktA?">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.Anwesenheit.Patrick_anweseheit</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="RK66d3=~rHgwKW2DG|S5">
                                  <field name="BOOL">TRUE</field>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="_(1g.LSHR+!M92BMy[V)">
                                  <field name="VAR" id="mjIE{DMAN;i0MY~~*3zj">presentCountP</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="Nv|B-hM3oZuo_:ryL[F:">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
        

        beacon1.JPG

        Ich glaube nicht das das wirklich schlau von mir ist, aber.. na ja.
        Mein ESPHome Yaml sieht so aus:

        esphome:
          name: esp32presence
          platform: ESP32
          board: esp32dev
        
        # Enable logging
        logger:
        
        # Enable Home Assistant API
        api:
         
        
        ota:
          
        
        wifi:
          ssid: "DieSSID"
          password: "passwort"
          power_save_mode: LIGHT
        
          manual_ip:
            static_ip: 192.10.10.10
            gateway: 192.10.10.11
            subnet: 255.255.255.0
        
        
          
          ap:
            ssid: "Esp32presence Fallback Hotspot"
            password: "passwort"
        
        captive_portal:
        esp32_ble_tracker:
          scan_parameters:
            window: 300ms
          
        sensor:
          - platform: ble_rssi
            mac_address: DF:AA:CA:AA:BB:CC
            name: "PatrickNut"
        
          - platform: ble_rssi
            mac_address: 66:CC:DD:FF:57:D7
            name: "NicoleNut"    
        

        Könntest du mir vielleicht mit deinen Scripten weiterhelfen wenn du was funktionierendes hast?
        Gruß
        Patrick

        M Online
        M Online
        mrjeschke
        schrieb am zuletzt editiert von
        #59

        @marsmännchen
        Ja richtig, ich mache das über den rssi Wert. Bei Aktualisierung wird ein Timeout gestoppt und neu gestartet.
        Wenn der rssi Wert nicht mehr aktualisiert wird, läuft er in den Timeout.
        Ein passendes Script habe ich doch schon gepostet.

        M 1 Antwort Letzte Antwort
        1
        • M mrjeschke

          @marsmännchen
          Ja richtig, ich mache das über den rssi Wert. Bei Aktualisierung wird ein Timeout gestoppt und neu gestartet.
          Wenn der rssi Wert nicht mehr aktualisiert wird, läuft er in den Timeout.
          Ein passendes Script habe ich doch schon gepostet.

          M Offline
          M Offline
          marsmännchen
          schrieb am zuletzt editiert von
          #60

          @maik-0
          Ah ich glaube jetzt verstehe ich erst die Logik von deinem Script. Gerade weil es nicht mehr aktualisiert wird, wird auf abwesend geschaltet.

          Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
          Wago PFC200 mit Dali Lichtsteuerung.

          M 1 Antwort Letzte Antwort
          0
          • M marsmännchen

            @maik-0
            Ah ich glaube jetzt verstehe ich erst die Logik von deinem Script. Gerade weil es nicht mehr aktualisiert wird, wird auf abwesend geschaltet.

            M Online
            M Online
            mrjeschke
            schrieb am zuletzt editiert von
            #61

            @marsmännchen
            Genau, wenn der Wert 60 Sekunden nicht mehr aktualisiert wird, schaltet es auf Abwesenheit. Kann sein, das 60 Sekunden etwas knapp ist. Musst du vieleicht etwas höher setzen.

            M 1 Antwort Letzte Antwort
            1
            • M mrjeschke

              @marsmännchen
              Genau, wenn der Wert 60 Sekunden nicht mehr aktualisiert wird, schaltet es auf Abwesenheit. Kann sein, das 60 Sekunden etwas knapp ist. Musst du vieleicht etwas höher setzen.

              M Offline
              M Offline
              marsmännchen
              schrieb am zuletzt editiert von
              #62

              @maik-0
              Is natürlich die schönere Lösung als meine hilflose Zauberei.
              Werd das gleich mal abpausen. Vielen Dank

              Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
              Wago PFC200 mit Dali Lichtsteuerung.

              M 1 Antwort Letzte Antwort
              0
              • M marsmännchen

                @maik-0
                Is natürlich die schönere Lösung als meine hilflose Zauberei.
                Werd das gleich mal abpausen. Vielen Dank

                M Offline
                M Offline
                marsmännchen
                schrieb am zuletzt editiert von marsmännchen
                #63

                @Maik-0
                Sorry will nicht nerven, aber:
                Wenn ich, wie gerade eben, nicht anwesend bin, dann wird der Baustein ja nicht aktualisiert.
                Wenn der Baustein nicht aktualisiert wird, schaltet die untere "falls-mache ->auf abwesend" überhaupt?

                Ab wann wird eigentlich aktualisiert?

                Hintergrund ist nämlich das mein Status sich ändert obwohl nicht daheim, und "RSSI (null)db" ist.
                Vielleicht hast du in der Yaml vom ESP32 was besseres stehen?

                Wie kann DAS sein?
                im debug-log bekomme ich die Variable (roter Kreis) mit "false"
                Und bei den Objekten schaltet der Datenpunkt (blauer Kreis) auf "true"!
                Wo hab ich da was übersehen..... mal wieder.
                beacon2.JPG

                Ich vermute weil der ESP32 auch meine Abwesenheit in form von "NaN" sendet.

                Ok.bin scheinbar schon zu blöd zum abschauen... Erinnert mich an meine Schulzeit.
                Hab glatt was vergessen:relieved:

                Gut, jetzt hab ich auch rausgefunden womit es zu tun hat.
                Wenn der ble_tracker vom ESP32

                [16:35:10][D][sensor:113]: 'PatrickNut': Sending state nan dB with 0 decimals of accuracy
                

                Sendet, wird logischerweise aktualisiert, und ich bin anwesend.

                Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
                Wago PFC200 mit Dali Lichtsteuerung.

                M 1 Antwort Letzte Antwort
                0
                • M marsmännchen

                  @Maik-0
                  Sorry will nicht nerven, aber:
                  Wenn ich, wie gerade eben, nicht anwesend bin, dann wird der Baustein ja nicht aktualisiert.
                  Wenn der Baustein nicht aktualisiert wird, schaltet die untere "falls-mache ->auf abwesend" überhaupt?

                  Ab wann wird eigentlich aktualisiert?

                  Hintergrund ist nämlich das mein Status sich ändert obwohl nicht daheim, und "RSSI (null)db" ist.
                  Vielleicht hast du in der Yaml vom ESP32 was besseres stehen?

                  Wie kann DAS sein?
                  im debug-log bekomme ich die Variable (roter Kreis) mit "false"
                  Und bei den Objekten schaltet der Datenpunkt (blauer Kreis) auf "true"!
                  Wo hab ich da was übersehen..... mal wieder.
                  beacon2.JPG

                  Ich vermute weil der ESP32 auch meine Abwesenheit in form von "NaN" sendet.

                  Ok.bin scheinbar schon zu blöd zum abschauen... Erinnert mich an meine Schulzeit.
                  Hab glatt was vergessen:relieved:

                  Gut, jetzt hab ich auch rausgefunden womit es zu tun hat.
                  Wenn der ble_tracker vom ESP32

                  [16:35:10][D][sensor:113]: 'PatrickNut': Sending state nan dB with 0 decimals of accuracy
                  

                  Sendet, wird logischerweise aktualisiert, und ich bin anwesend.

                  M Online
                  M Online
                  mrjeschke
                  schrieb am zuletzt editiert von
                  #64

                  @marsmännchen
                  Unschön ist natürlich wenn das Script zum ersten Mal gestartet während du nicht zu hause bist, passiert nichts. Bis zum ersten Kontakt zum Beacon.
                  Dann würde ja beim weggehen der Timeout greifen.
                  Wenn sich aber dein Status ändert während du abwesend bist,
                  müsste ja auch ohne Kontakt zum Beacon der rssi Wert aktualisiert werden.
                  Das ist bei mir nicht der Fall. Etwas merkwürdig.
                  Alternativ wäre auch es auch noch möglich das über den ESPHome Presence Melder zu machen.
                  https://www.esphome.io/components/binary_sensor/ble_presence.html

                  M 1 Antwort Letzte Antwort
                  0
                  • M mrjeschke

                    @marsmännchen
                    Unschön ist natürlich wenn das Script zum ersten Mal gestartet während du nicht zu hause bist, passiert nichts. Bis zum ersten Kontakt zum Beacon.
                    Dann würde ja beim weggehen der Timeout greifen.
                    Wenn sich aber dein Status ändert während du abwesend bist,
                    müsste ja auch ohne Kontakt zum Beacon der rssi Wert aktualisiert werden.
                    Das ist bei mir nicht der Fall. Etwas merkwürdig.
                    Alternativ wäre auch es auch noch möglich das über den ESPHome Presence Melder zu machen.
                    https://www.esphome.io/components/binary_sensor/ble_presence.html

                    M Offline
                    M Offline
                    marsmännchen
                    schrieb am zuletzt editiert von
                    #65

                    @maik-0
                    Ja, is scheinbar wirklich so, das er trotzdem ab und zu "state nan" sendet.
                    ich versuche das mit:beacon1.JPG

                    Solch einem Konstrukt zu verhindern. mal sehn was passiert.
                    Sonst versuche ich mal ble_presence

                    Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
                    Wago PFC200 mit Dali Lichtsteuerung.

                    M 1 Antwort Letzte Antwort
                    0
                    • M marsmännchen

                      @maik-0
                      Ja, is scheinbar wirklich so, das er trotzdem ab und zu "state nan" sendet.
                      ich versuche das mit:beacon1.JPG

                      Solch einem Konstrukt zu verhindern. mal sehn was passiert.
                      Sonst versuche ich mal ble_presence

                      M Online
                      M Online
                      mrjeschke
                      schrieb am zuletzt editiert von
                      #66

                      @marsmännchen
                      Du solltest aber den „stop timeout“ noch verschieben. Als ersten Befehl in
                      deine eingefügte if-Abfrage. Sonst stoppt er auch den timeout auch wenn
                      „state nan“ kommt.

                      D 1 Antwort Letzte Antwort
                      1
                      • M mrjeschke

                        @marsmännchen
                        Du solltest aber den „stop timeout“ noch verschieben. Als ersten Befehl in
                        deine eingefügte if-Abfrage. Sonst stoppt er auch den timeout auch wenn
                        „state nan“ kommt.

                        D Offline
                        D Offline
                        Dieter_P
                        schrieb am zuletzt editiert von
                        #67

                        Hi
                        bin aktuell auf der Suche nach einer besseren Anwesenheitserkennung da die Smartphones (Android) über Wlan und TR064 teilweise erst nach >10Minuten erkannt werden, da die Geräte sich erst dann einloggen. Das ist für mich keine gute Lösung.

                        Ihr habt jetzt viel mit den G-Tags getestet. Seit ihr damit zufrieden?

                        Bei der Lösung stelle ich mir andauernd die Frage ob man dies nicht über das Handy lösen kann (Bluetooth BLE)? Im Zug von Corona App etc. ist diese Funktion der Smartphones sehr aktuell und senden die nicht auch dauernd ohne Energiesparmodus Signale über BLE um sich zu erkennen zu geben?

                        M 1 Antwort Letzte Antwort
                        0
                        • D Dieter_P

                          Hi
                          bin aktuell auf der Suche nach einer besseren Anwesenheitserkennung da die Smartphones (Android) über Wlan und TR064 teilweise erst nach >10Minuten erkannt werden, da die Geräte sich erst dann einloggen. Das ist für mich keine gute Lösung.

                          Ihr habt jetzt viel mit den G-Tags getestet. Seit ihr damit zufrieden?

                          Bei der Lösung stelle ich mir andauernd die Frage ob man dies nicht über das Handy lösen kann (Bluetooth BLE)? Im Zug von Corona App etc. ist diese Funktion der Smartphones sehr aktuell und senden die nicht auch dauernd ohne Energiesparmodus Signale über BLE um sich zu erkennen zu geben?

                          M Offline
                          M Offline
                          marsmännchen
                          schrieb am zuletzt editiert von
                          #68

                          @dieter_p Also wie du eine Unterhaltung weiter oben sehen kannst habe ich jetzt am Schlüsselbund einen beacon(heisst nut beacon) und in der Nähe der eingangstüre einen esp32 mit externer Antenne. Ich muss sagen das ist für mich die optimale Lösung. Erkennt zuverlässig und schnell. Soweit meine Erfahrung.

                          Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
                          Wago PFC200 mit Dali Lichtsteuerung.

                          D 1 Antwort Letzte Antwort
                          0
                          • M marsmännchen

                            @dieter_p Also wie du eine Unterhaltung weiter oben sehen kannst habe ich jetzt am Schlüsselbund einen beacon(heisst nut beacon) und in der Nähe der eingangstüre einen esp32 mit externer Antenne. Ich muss sagen das ist für mich die optimale Lösung. Erkennt zuverlässig und schnell. Soweit meine Erfahrung.

                            D Offline
                            D Offline
                            Dieter_P
                            schrieb am zuletzt editiert von Dieter_P
                            #69

                            @marsmännchen
                            Danke fürs Feedback. Habe hier jetzt auch ein paar Beacons bestellt und einen ESP32. Damit wollte ich mal testen. Falls ich es noch sinnvoll schaffe die Smartphones auch mit zu scannen, kann eine redundante Lösung ja nicht schaden.

                            Welche Software verwendest Du auf dem ESP32? Ich finde sehr viele Skripte und Github-Code. Bin da nicht so ein großer Freund und würde lieber eine ständig gepflegte Lösung verwenden. Glaube gelesen zu haben, dass Tasmota für diesen Zweck auch möglich ist?

                            Welche Reichweiten schaffst Du bei Dir um die Beacons zu erkennen und welche maximale Zeitverzögerung hast Du um gesichert Anwesenheit erkennen zu können?
                            Dein blockly oben deutet auf 60 Sekunden hin.
                            Würde ungern den Alarm der Alarmanlage noch länger verzögern.

                            M 1 Antwort Letzte Antwort
                            0
                            • D Dieter_P

                              @marsmännchen
                              Danke fürs Feedback. Habe hier jetzt auch ein paar Beacons bestellt und einen ESP32. Damit wollte ich mal testen. Falls ich es noch sinnvoll schaffe die Smartphones auch mit zu scannen, kann eine redundante Lösung ja nicht schaden.

                              Welche Software verwendest Du auf dem ESP32? Ich finde sehr viele Skripte und Github-Code. Bin da nicht so ein großer Freund und würde lieber eine ständig gepflegte Lösung verwenden. Glaube gelesen zu haben, dass Tasmota für diesen Zweck auch möglich ist?

                              Welche Reichweiten schaffst Du bei Dir um die Beacons zu erkennen und welche maximale Zeitverzögerung hast Du um gesichert Anwesenheit erkennen zu können?
                              Dein blockly oben deutet auf 60 Sekunden hin.
                              Würde ungern den Alarm der Alarmanlage noch länger verzögern.

                              M Offline
                              M Offline
                              marsmännchen
                              schrieb am zuletzt editiert von marsmännchen
                              #70

                              @dieter_p ich verwende esphome Adapter, die Reichweite ist so ca. 20meter.esp32 ist im innenraum, Eingangs Bereich. Die Zeit von 60sekunden ist ausreichend für mich. Habe noch nicht daran rumgespielt.Das auslesen des Handys mit Bluetooth stell ich mir mit esphome nicht viel anders vor, brauchst nur die Mac Adresse des Bluetooth.

                              Raspberry Pi 4 8GB, Debian 11, js-controller: 5.0.12, Nodejs: v18.18.2, NPM: 9.8.1 (Multihost),
                              Wago PFC200 mit Dali Lichtsteuerung.

                              D 2 Antworten Letzte Antwort
                              0
                              • M marsmännchen

                                @dieter_p ich verwende esphome Adapter, die Reichweite ist so ca. 20meter.esp32 ist im innenraum, Eingangs Bereich. Die Zeit von 60sekunden ist ausreichend für mich. Habe noch nicht daran rumgespielt.Das auslesen des Handys mit Bluetooth stell ich mir mit esphome nicht viel anders vor, brauchst nur die Mac Adresse des Bluetooth.

                                D Offline
                                D Offline
                                Dieter_P
                                schrieb am zuletzt editiert von
                                #71

                                @marsmännchen
                                Danke. Das klingt vielversprechend und wäre genau das was ich suche.

                                1 Antwort Letzte Antwort
                                0
                                • M marsmännchen

                                  @dieter_p ich verwende esphome Adapter, die Reichweite ist so ca. 20meter.esp32 ist im innenraum, Eingangs Bereich. Die Zeit von 60sekunden ist ausreichend für mich. Habe noch nicht daran rumgespielt.Das auslesen des Handys mit Bluetooth stell ich mir mit esphome nicht viel anders vor, brauchst nur die Mac Adresse des Bluetooth.

                                  D Offline
                                  D Offline
                                  Dieter_P
                                  schrieb am zuletzt editiert von Dieter_P
                                  #72

                                  Habe nun erste Versuche mit ESP32 und ESPHome gemacht aber scheine da noch ein Format Verständnis Problem zu haben. Meine Beacons sind noch nicht da aber auch sonst wäre die Android App "Beacon Simulator" eine schöne dauerhafte Ergänzung.

                                  Kann mir jemand sagen was hier mit der UUID eines iBeacon gemacht wird?
                                  Über Online Converter (Hex zu String o.ä.) oder die verschiedenen Typen UUID vs. GUID etc. bin ich nicht schlau draus geworden:

                                  Im Simulator/App benutzt:
                                  6cf8ca0f-253b-49a4-9ba0-42c253323835-grafik.png

                                  Im Code von ESPHome jedoch so detektiert:

                                  esp32_ble_tracker:
                                    on_ble_advertise:
                                      - then:
                                          # - if: 
                                          #     condition:
                                          #       lambda: |-
                                          #         for (auto data : x.get_manufacturer_datas()) {
                                          #           return (strcmp(hexencode(data.data).c_str(), "02.15.2B.9E.6A.0A.14.92.41.74.AC.06.26.7B.BB.4B.B0.50.00.00.00.00.BF (23)") == 0);
                                          #         }
                                          #         return false;
                                          #     then:
                                                
                                          - lambda: |-
                                              ESP_LOGD("ble_adv", "New BLE device");
                                              ESP_LOGD("ble_adv", "  rssi: %d", x.get_rssi());
                                              ESP_LOGD("ble_adv", "  Advertised manufacturer data:");
                                              for (auto data : x.get_manufacturer_datas()) {
                                                ESP_LOGD("ble_adv", "    - %s", hexencode(data.data).c_str());
                                                if (strcmp(hexencode(data.data).c_str(), "02.15.2B.9E.6A.0A.14.92.41.74.AC.06.26.7B.BB.4B.B0.50.00.00.00.00.BF (23)") == 0) {
                                                  ESP_LOGD("ble_adv", "in if");
                                                }
                                              }
                                  

                                  Oder kurz: wie wird aus iBeacon UUID:

                                  2b9e6a0a-1492-4174-ac06-267bbb4bb050
                                  
                                  02.15.2B.9E.6A.0A.14.92.41.74.AC.06.26.7B.BB.4B.B0.50.00.00.00.00.BF
                                  

                                  Thx!

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • D Dieter_P

                                    Habe nun erste Versuche mit ESP32 und ESPHome gemacht aber scheine da noch ein Format Verständnis Problem zu haben. Meine Beacons sind noch nicht da aber auch sonst wäre die Android App "Beacon Simulator" eine schöne dauerhafte Ergänzung.

                                    Kann mir jemand sagen was hier mit der UUID eines iBeacon gemacht wird?
                                    Über Online Converter (Hex zu String o.ä.) oder die verschiedenen Typen UUID vs. GUID etc. bin ich nicht schlau draus geworden:

                                    Im Simulator/App benutzt:
                                    6cf8ca0f-253b-49a4-9ba0-42c253323835-grafik.png

                                    Im Code von ESPHome jedoch so detektiert:

                                    esp32_ble_tracker:
                                      on_ble_advertise:
                                        - then:
                                            # - if: 
                                            #     condition:
                                            #       lambda: |-
                                            #         for (auto data : x.get_manufacturer_datas()) {
                                            #           return (strcmp(hexencode(data.data).c_str(), "02.15.2B.9E.6A.0A.14.92.41.74.AC.06.26.7B.BB.4B.B0.50.00.00.00.00.BF (23)") == 0);
                                            #         }
                                            #         return false;
                                            #     then:
                                                  
                                            - lambda: |-
                                                ESP_LOGD("ble_adv", "New BLE device");
                                                ESP_LOGD("ble_adv", "  rssi: %d", x.get_rssi());
                                                ESP_LOGD("ble_adv", "  Advertised manufacturer data:");
                                                for (auto data : x.get_manufacturer_datas()) {
                                                  ESP_LOGD("ble_adv", "    - %s", hexencode(data.data).c_str());
                                                  if (strcmp(hexencode(data.data).c_str(), "02.15.2B.9E.6A.0A.14.92.41.74.AC.06.26.7B.BB.4B.B0.50.00.00.00.00.BF (23)") == 0) {
                                                    ESP_LOGD("ble_adv", "in if");
                                                  }
                                                }
                                    

                                    Oder kurz: wie wird aus iBeacon UUID:

                                    2b9e6a0a-1492-4174-ac06-267bbb4bb050
                                    
                                    02.15.2B.9E.6A.0A.14.92.41.74.AC.06.26.7B.BB.4B.B0.50.00.00.00.00.BF
                                    

                                    Thx!

                                    D Offline
                                    D Offline
                                    Dieter_P
                                    schrieb am zuletzt editiert von Dieter_P
                                    #73

                                    Lange rumprobiert und nun ist es nutzbar. Für Interessierte:

                                    Der Code oben scheint mir nur bestimme Bestandteile des Bluetooth BLE Datenpakets auszufilter.

                                    Nutzt man als Beispiel diesen Code in ESPHome:

                                    esp32_ble_tracker:
                                      on_ble_advertise:
                                        - then:
                                            - lambda: |-
                                                bool redmi_note_9_pro_status = false;
                                                
                                                for (auto data : x.get_manufacturer_datas()) {
                                                  if (strcmp(hexencode(data.data).c_str(), "02.15.49.01.F3.6B.E9.1A.44.B7.B3.62.FF.2E.B6.43.05.04.00.00.00.00.BF (23)") == 0) {
                                                    ESP_LOGD("ble_adv", "redmi_note_9_pro found");
                                                    redmi_note_9_pro_status = true;
                                                  }
                                                  ESP_LOGD("ble_adv", "    - %s", hexencode(data.data).c_str());
                                                }
                                                
                                                id(redmi_note_9_pro).publish_state(redmi_note_9_pro_status);
                                                
                                                
                                    binary_sensor:
                                      - platform: template
                                        device_class: presence
                                        name: "Redmi Note 9 Pro BLE presence"
                                        id: redmi_note_9_pro
                                        filters:
                                          - delayed_off: 3s
                                    

                                    Bekommt man im Logging Fenster viel mehr Informationen wie Manufacturer DATA wenn man mit der App Beacon Simulator sendet, aber auch die änderbare UUID. ACHTUNG! im Logging Fenster ist die UUID in umgekehrter Reihenfolge geschrieben!

                                    [13:37:18][VV][esp32_ble_tracker:493]: Parse Result:
                                    [13:37:18][VV][esp32_ble_tracker:510]:   Address: 5C:86:26:05:12:C0 (RANDOM)
                                    [13:37:18][VV][esp32_ble_tracker:512]:   RSSI: -83
                                    [13:37:18][VV][esp32_ble_tracker:513]:   Name: ''
                                    [13:37:18][VV][esp32_ble_tracker:527]:   Manufacturer data: 02.15.B3.6E.AB.BD.56.CA.48.6E.9E.F4.C9.2D.AC.F7.9B.5F.00.00.00.00.BF (23)
                                    [13:37:18][VV][esp32_ble_tracker:530]:     iBeacon data:
                                    [13:37:18][VV][esp32_ble_tracker:531]:       UUID: 5D9BF7AC-2DC9-F49E-6E48-CA56BDAB6EB3
                                    [13:37:18][VV][esp32_ble_tracker:532]:       Major: 0
                                    [13:37:18][VV][esp32_ble_tracker:533]:       Minor: 0
                                    [13:37:18][VV][esp32_ble_tracker:534]:       TXPower: -65
                                    [13:37:18][VV][esp32_ble_tracker:543]: Adv data: 1A.FF.4C.00.02.15.B3.6E.AB.BD.56.CA.48.6E.9E.F4.C9.2D.AC.F7.9B.5F.00.00.00.00.BF (27)
                                    [13:37:18][D][ble_adv:070]: google_pixel_4a found
                                    [13:37:18][D][ble_adv:073]:     - 02.15.B3.6E.AB.BD.56.CA.48.6E.9E.F4.C9.2D.AC.F7.9B.5F.00.00.00.00.BF (23)
                                    

                                    So lässt sich mit diesem Code die richtigen "IDs" für das eigene Telefon finden und dann der Code in ESPHome anpassen, dass dort bei Präsenz der Datenpunkt in IObroker auch gesetzt wird.

                                    Jetzt noch etwas mit der Delay_Off Zeit spielen, damit es weniger sensibel reagiert.

                                    SanwebS S 2 Antworten Letzte Antwort
                                    0
                                    • D Dieter_P

                                      Lange rumprobiert und nun ist es nutzbar. Für Interessierte:

                                      Der Code oben scheint mir nur bestimme Bestandteile des Bluetooth BLE Datenpakets auszufilter.

                                      Nutzt man als Beispiel diesen Code in ESPHome:

                                      esp32_ble_tracker:
                                        on_ble_advertise:
                                          - then:
                                              - lambda: |-
                                                  bool redmi_note_9_pro_status = false;
                                                  
                                                  for (auto data : x.get_manufacturer_datas()) {
                                                    if (strcmp(hexencode(data.data).c_str(), "02.15.49.01.F3.6B.E9.1A.44.B7.B3.62.FF.2E.B6.43.05.04.00.00.00.00.BF (23)") == 0) {
                                                      ESP_LOGD("ble_adv", "redmi_note_9_pro found");
                                                      redmi_note_9_pro_status = true;
                                                    }
                                                    ESP_LOGD("ble_adv", "    - %s", hexencode(data.data).c_str());
                                                  }
                                                  
                                                  id(redmi_note_9_pro).publish_state(redmi_note_9_pro_status);
                                                  
                                                  
                                      binary_sensor:
                                        - platform: template
                                          device_class: presence
                                          name: "Redmi Note 9 Pro BLE presence"
                                          id: redmi_note_9_pro
                                          filters:
                                            - delayed_off: 3s
                                      

                                      Bekommt man im Logging Fenster viel mehr Informationen wie Manufacturer DATA wenn man mit der App Beacon Simulator sendet, aber auch die änderbare UUID. ACHTUNG! im Logging Fenster ist die UUID in umgekehrter Reihenfolge geschrieben!

                                      [13:37:18][VV][esp32_ble_tracker:493]: Parse Result:
                                      [13:37:18][VV][esp32_ble_tracker:510]:   Address: 5C:86:26:05:12:C0 (RANDOM)
                                      [13:37:18][VV][esp32_ble_tracker:512]:   RSSI: -83
                                      [13:37:18][VV][esp32_ble_tracker:513]:   Name: ''
                                      [13:37:18][VV][esp32_ble_tracker:527]:   Manufacturer data: 02.15.B3.6E.AB.BD.56.CA.48.6E.9E.F4.C9.2D.AC.F7.9B.5F.00.00.00.00.BF (23)
                                      [13:37:18][VV][esp32_ble_tracker:530]:     iBeacon data:
                                      [13:37:18][VV][esp32_ble_tracker:531]:       UUID: 5D9BF7AC-2DC9-F49E-6E48-CA56BDAB6EB3
                                      [13:37:18][VV][esp32_ble_tracker:532]:       Major: 0
                                      [13:37:18][VV][esp32_ble_tracker:533]:       Minor: 0
                                      [13:37:18][VV][esp32_ble_tracker:534]:       TXPower: -65
                                      [13:37:18][VV][esp32_ble_tracker:543]: Adv data: 1A.FF.4C.00.02.15.B3.6E.AB.BD.56.CA.48.6E.9E.F4.C9.2D.AC.F7.9B.5F.00.00.00.00.BF (27)
                                      [13:37:18][D][ble_adv:070]: google_pixel_4a found
                                      [13:37:18][D][ble_adv:073]:     - 02.15.B3.6E.AB.BD.56.CA.48.6E.9E.F4.C9.2D.AC.F7.9B.5F.00.00.00.00.BF (23)
                                      

                                      So lässt sich mit diesem Code die richtigen "IDs" für das eigene Telefon finden und dann der Code in ESPHome anpassen, dass dort bei Präsenz der Datenpunkt in IObroker auch gesetzt wird.

                                      Jetzt noch etwas mit der Delay_Off Zeit spielen, damit es weniger sensibel reagiert.

                                      SanwebS Offline
                                      SanwebS Offline
                                      Sanweb
                                      schrieb am zuletzt editiert von
                                      #74

                                      @dieter_p
                                      Ich beobachte das ESPHome AddOn für den ioBroker schon lange bei Github, jedoch ist es bisher noch nicht in den "Stable"-Modus gewechselt, damit es im AddOn-Reporisitory auftaucht. Eine Anfrage über GitHub beim Entwickler ergab die Antwort, das er da noch zwei Änderungen machen muss und das war bereits vor einem Jahr. Direkt wollte ich mir das AddOn on Github nicht installieren, da ich mir mit sowas schon mal die aktuelle Produktivumgebung zerschossen hatte.

                                      Solange also das AddOn nicht regelmäßig gepflegt wird, behelfe ich mich selber mit Tasmota und einem ESP32, um die G-Tags zu tracken, funktioniert auch bisher ganz praktikabel in Kombination ioBroker ...

                                      D 1 Antwort Letzte Antwort
                                      0
                                      • SanwebS Sanweb

                                        @dieter_p
                                        Ich beobachte das ESPHome AddOn für den ioBroker schon lange bei Github, jedoch ist es bisher noch nicht in den "Stable"-Modus gewechselt, damit es im AddOn-Reporisitory auftaucht. Eine Anfrage über GitHub beim Entwickler ergab die Antwort, das er da noch zwei Änderungen machen muss und das war bereits vor einem Jahr. Direkt wollte ich mir das AddOn on Github nicht installieren, da ich mir mit sowas schon mal die aktuelle Produktivumgebung zerschossen hatte.

                                        Solange also das AddOn nicht regelmäßig gepflegt wird, behelfe ich mich selber mit Tasmota und einem ESP32, um die G-Tags zu tracken, funktioniert auch bisher ganz praktikabel in Kombination ioBroker ...

                                        D Offline
                                        D Offline
                                        Dieter_P
                                        schrieb am zuletzt editiert von Dieter_P
                                        #75

                                        @sanweb

                                        viele Wege führen nach Rom....

                                        Mindestens seit Jan 2022 läuft das bei mir absolute Problemlos. Habe inzwischen auch klare Favoriten bei den Beacons gefunden. Bei den G-Tags konnte ich nie finden was drinsteckt und Nordic Data (nrf... Chips) Versionen haben mich im Vergleich bzgl. Batterielaufzeit nicht überzeugt und mit voller Sendeleistung ist der Feasycom FSC-BP103B mit Dialog Semiconductor Chip mein Favorit.

                                        Bzgl. ESPHome bin ich nicht wirklich von der Implementierung angetan. Mir kommt das bzgl. installation mit benötigtem Python sehr "zusammengebastelt" vor, dass ich als Nichtwissender bei kleinsten Abweichungen schnell in Sackgassen laufe. Entsprechend stört mich auch, das im Fall von Updates für eines dieser Komponenten schon das ganze Konstrukt ins Wanken geraten kann. Ist halt irgendwie nicht "aus einem Guss" die ESPHome IOBroker Integration wie ich sie empfinde. Deswegen habe ich auch meine weiteren bestehenden ESPs auf ESPEasy weiter gelassen, da dies absolute gut läuft. ESPEasy war nur bzgl. BLE Erkennung schwierig etwas zu finden und dort umzusetzen.

                                        FriedhofsblondF 1 Antwort Letzte Antwort
                                        0
                                        • ingranuI Offline
                                          ingranuI Offline
                                          ingranu
                                          schrieb am zuletzt editiert von
                                          #76

                                          Hallo zusammen

                                          Ich habe da eine Frage zu den Einstellungen.
                                          Meine iobroker installation habe ich von der Synology VM auf Proxmox umgezogen. Das ganze läuft dort auf einer VM unter Ubuntu. Irgendwie zickt seit daher der Radar2.0 Adapter.

                                          Ich benutze einen USB Dongle , diese tracken meinen Gigaset G-Tag.
                                          Was muss ich bei den Einstellungen anwählen?
                                          radar.PNG

                                          • hcitool lescan anstelle von "Noble" verwenden

                                          Muss ich diese Option anwählen oder nicht?
                                          Irgendwie geht es mit beiden, jedoch läuft es nicht so zuverlässlich.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          761

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe