Beacony iNode w HA

Kurcze - Panowie i Panie. Męcze i męcze i nic.
Zgodnie z tym co pisał @jacek zainstalowałem nowe firmware mam kod i po tej stronie mam chyba wszystko.
Ale za nic w Świecie nie umiem tego dodać do HA, Czy poprowadzi mie ktoś za rączke - Wy tu piszecie Państwo, że wygląda to tak łatwo a ja bidulek próbuje i nic.
Potrzebuje pomocy z tym całym MQTT i jak dodać tego Inoda
:sleepy: pomocy plisssss
@artur może coś miałbyś chwilkę, żeby choć ruszyć trochę?
muszę najpierw się podłączyć a poźniej sprawdzić które pastylki są w domu. Posiadam iNode Beacon i widać je z poziomu http Inoda lana.

@Adam_Nowicki A masz jakieś urządzenia MQTT? Instalowałeś wcześniej np. Mosquitto broker w HA?

@jacek mam zainstalowany Mosquitto broker nic innego nie mam mqtt.
wydaje mi się, że dobrze zainstalowany - łącze się z Inoda lana ale mam takie logi:

1613922588: Client iNode-LAN:D0F01843EE1A disconnected.
1613922603: New connection from 192.168.1.101 on port 1883.
1613922603: New client connected from 192.168.1.101 as iNode-LAN:D0F01843EE1A (p2, c1, k60, u’mqtt’).
1613922603: Client iNode-LAN:D0F01843EE1A disconnected.
1613922618: New connection from 192.168.1.101 on port 1883.
1613922618: New client connected from 192.168.1.101 as iNode-LAN:D0F01843EE1A (p2, c1, k60, u’mqtt’).
1613922618: Client iNode-LAN:D0F01843EE1A disconnected.
1613922633: New connection from 192.168.1.101 on port 1883.
1613922633: New client connected from 192.168.1.101 as iNode-LAN:D0F01843EE1A (p2, c1, k60, u’mqtt’).
1613922633: Client iNode-LAN:D0F01843EE1A disconnected.

I tak cały czas. Ale zainstalowałem na win 10 MQTT-Explorer i on pokazuje, że inod jest połączony. Więc chyba jest ok.
Tylko co dalej?

Sprawdź w HA - Konfiguracja → Integracje → MQTT Mosquitto broker → Konfiguracja

Nasłuch tematu → Temat zasubskrybowania - tutaj wpisz temat z konfiguracji iNode LAN Central - setup page, z pola Page/Topic Name i rozpocznij nasłuch. Jak jest wszystko OK to powinien się tam pojawić “mac”: z adresem twojego beacona z licznika.

Wtedy tworzysz sensory wg przykładów, który wysyłałem dostosowując do swoich parametrów i potrzeb.

@jacek niestety nie wyłapuje nic :frowning:

Czy sprawdzałeś komunikację iNode Energy Meter z aplikacji np. w telefonie iNode EM? Konfigurowałeś beacona? Komunikuje się? Jeżeli TAK to coś jest źle ustawione w konfiguracji iNode LAN Central. Może czujnik jest za daleko od iNode LAN? Czy podczas nasłuchu MQTT w HA widać iNode LAN w łańcuchu json? u mnie jest tak np:

"data": [
    {
        "timestamp": "2021-02-22T17:14:40Z",
        "type": "iNode-LAN:xxxxxx",
        "mac": "xxxxxxxxxxxx",
        "ip": "192.xxx.xx.xx",
        "rtc": 1614014080,
        "ethRx": 0,
        "ethTx": 1298,
        "bleRx": 176304,
        "bleTx": 0,
        "workTime": 12971,
        "txp": 8,
        "rst": 1409,
        "temp": 53,
        "msg": 866,
        "ack": 865,
        "tx_time": 299739,
        "juf": 128,
        "period": 15,
        "manuf": 244,
        "rstr": 44
    }

dalej pojawiają się inne urządzenia BT i energy meter inode.

Ja mam Inode lan central do tego pastylki nie do mierzenia energii tylko do sprawdzanie obecności.
Same pastylki widzę z poziomu aplikacji.
Bicona nie konfigurowałem. Odpalam poprzez strone inoda lan central i tam skonfigurowałem połączenie do serwera HA MQTT.

poniżej zrzuty ekranu z ustawieniami i logami:

![2|418x500]
i niżej z ustawieniami Inode lan central:

Przy zmianie firmware iNode Lan Central konieczna jest też zmiana stron systemowych HTML. Robiłeś to wg instrukcji? Twoje zrzuty z ustawieniami różnią się od tego co jest u mnie. Brakuje ustawień dla m.in. BLE scan window [ms]:, BLE scan interval [ms]: i JSON period BLE cnt watchdog: To może być twój problem.

Konfiguracja po stronie HA i MQTT chyba jest OK.

teraz mam tak

Teraz jest tak jak u mnie. Jedynie różnice to:

BLE FILTER MANUF MASK: 0x00ff

NTP IP address: 194.146.251.100
NTP Name: tempus1.gum.gov.pl
GMT offset: 0

Server Name: hassio

JSON period BLE cnt watchdog: on

Spróbuj zmienić i sprawdź w HA nasłuch MQTT

I jeszcze na pierwszej stronie Node LAN Central - info page sprawdź jaki masz JSON msg counter: i JSON ack counter:

U mnie jest tak:
ETH: 100Mbps Full duplex
RTC: 23.02.21/20:40:01
BLE: AUTO SCAN MODE
SCAN: AUTO SCAN MODE
SCAN mode: active
ETH RX → BLE TX: 0/0
BLE RX → ETH TX: 4410/55
JSON msg counter: 37
JSON ack counter: 37
JSON msg TX time:* 658.264ms
JSON period BLE RX cnt: 66
JSON mode: PERIOD & TRACE, MQTT server
MQTT server connect status: Connection accepted
JSON firmware access: UNLOCKED - KEY OK
RST counter: 1412 - warm reset / setup write
Work time: 8 minutes, 58 seconds
BLE TX power: 8 dBm

Teraz mam już tak:
ETH: 100Mbps Full duplex
RTC: 24.02.21/09:53:54
BLE: AUTO SCAN MODE
SCAN: AUTO SCAN MODE
SCAN mode: active
ETH RX → BLE TX: 0/0
BLE RX → ETH TX: 911/1
JSON msg counter: 3
JSON ack counter: 3
JSON msg TX time: 294.697ms
JSON period BLE RX cnt: 0
JSON mode: PERIOD & TRACE, data encrypted, MQTT server
MQTT server connect status: Connection accepted
JSON firmware access: UNLOCKED - KEY OK
RST counter: 1879 - warm reset / setup write
Work time: 40 seconds
BLE TX power: 8 dBm

Postęp jest ale na nasłuchu nic możliwe , że to:
JSON period BLE RX cnt: 0
jest winne.

Temat nasłuchu robię: iNodeLAN/D0F01843EE1A czyli taki sam jak “PAGE TOPIC NAME” z Inoda?

Tak, nasłuch w HA taki sam jak w setup Page/Topic Name. Spróbuj w HA opublikować coś np. w jednym oknie przeglądarki i sprawdzić w drugim nasłuch.

Poza tym nic innego nie przychodzi mi do głowy. Sprawdź beacona czy w ogóle działa po MAC np. na komórce w aplikacji typu BLE scanner.

Jak coś odczytasz to sprawdź na stronie 9 iNode LAN Central - instrukcja użytkownika - może jakieś inne filtry BLE FILTER MANUF MASK?

Jak nie działa to może producent pomoże.

nasłuch na 2 stronie odbiera wszystko, beacony widze w aplikacji, a gdzie one powinny być widziane w inode central w którym miejscu? bo tu ich nie widzę.
No i to mnie martwi:
JSON period BLE RX cnt: 0

Producent w instrukcji pisze, że strona iNode MQTT Monitor umożliwia przetestowanie komunikacji pomiędzy urządzeniem, a serwerem MQTT. Ja nie korzystałem.

Sprawdź jeszcze parametry konfiguracyjne samego beacona.

hej
czy mógłbyś podesłać przykładowe składnie dla sensorów InodeEM?
Nasłuchując topica InodeLAN otzrymuję coś takiego z InodeEM i nie bardzo wiem jak to, hmm “zdekodować”???
“timestamp”: “2021-02-28T09:05:14Z”,
“mac”: “D0CF5E039312”,
“rssi”: -67,
“rawData”: “0201060EFFA0820B00574B0900DC05D00000020A08”,
“rawResp”: “0D09694E6F64652D303339333132”

Przykład dekodowania dla sensora dla zużycia prądu iNodeEM:

- platform: mqtt
  name: "Zużycie pradu"
  unit_of_measurement: 'W'
  state_topic: "inodelan/licznik"
  value_template: >
    {% set ns = namespace(found=false) %}
    {% for dev in value_json.data %}
     {% if dev.mac == 'D0xxxxxxxxxx' %}
      {% set val = dev.rawData %}
      {% if (val[12:14] == "82") %}
       {# set new value found true #}
       {% set ns.found = true %}
       {% set p = 12 %}
       {{ ((((((val[p+4]~val[p+5]~val[p+2]~val[p+3])| int(base=16)))/5000)*60)*1000) | round(0) }}
      {% endif %}
     {% endif %}
    {% endfor %} 
    {% if not(ns.found) %}
     {{ states('sensor.xxx) }}
    {% endif %}    
  icon: mdi:flash-circle   

Podobnie dla licznika:

- platform: mqtt
  name: "Licznik prądu"
  unit_of_measurement: 'kWh'
  state_topic: "inodelan/licznik"
  value_template: >
    {% set ns = namespace(found=false) %}
    {% for dev in value_json.data %}
     {% if dev.mac == 'D0xxxxxxxxxx' %}
      {% set val = dev.rawData %}
      {% if (val[12:14] == "82") %}
       {% set ns.found = true %}
       {% set p = 18 %}
       {{ ((((val[p+6]~val[p+7]~val[p+4]~val[p+5]~val[p+2]~val[p+3]~val[p]~val[p+1])| int(base=16)))/5000) | round(4) }}
      {% endif %}
     {% endif %}
    {% endfor %} 
    {% if not(ns.found) %}
     {{ states('sensor.xxx) }}
    {% endif %}  
  icon: mdi:counter    

Jeszcze sensor dla pomiaru dzisiaj:

- platform: mqtt
  name: "Pomiar dzisiaj"
  unit_of_measurement: 'kWh'
  state_topic: "inodelan/licznik"
  value_template: >
    {% set ns = namespace(found=false) %}
    {% for dev in value_json.data %}
     {% if dev.mac == 'D0xxxxxxxxxx' %}
      {% set val = dev.rawData %}
      {% if (val[12:14] == "82") %}
       {% set ns.found = true %}
       {% set p = 32 %}
       {{ ((val[p]~val[p+1])| int(base=16)) }}
      {% endif %}
     {% endif %}
    {% endfor %} 
    {% if not(ns.found) %}
     {{ states('sensor.xxx') }}
    {% endif %}  
  icon: mdi:counter     

Podobnie dla baterii, światła, dnia tygodnia. Wszystko jest w “rawData”

@jacek dzięki. Jednak wywala mi błąd przy sprawdzaniu konfiga w HA. Zapewne gdzieś błąd w value_template. Oczywiście ustawiłem state_topic na swój, mac → InodeEM. Nie potrafię wywnioskować czym jest sensor.xxx . Jeśli to nie problem to wrzuć template na jakichś pastebin.
Rozumiem, że nic innego poza wstawieniem sensora mqtt nie definiuję w configu HA. ???
Dzięki

dev.mac na swój
state_topic: też na swój
state_topic:state sensor.xxx zmień na unknown np. tak:

{% if not(ns.found) %}
 unknown 
{% endif %} 

Jak wszystko działa to dla sensor.licznik_pradu można w configuration.yaml skonfigurować utility_meter: np. tak, w zależności jakie masz taryfy:

utility_meter:
  energy_usage_hour:
    source: sensor.licznik_pradu
    cycle: hourly
    tariffs:
      - std
  energy_usage_day:
    source: sensor.licznik_pradu
    cycle: daily
    tariffs:
      - std
  energy_usage_week:
    source: sensor.licznik_pradu
    cycle: weekly
    tariffs:
      - std
  energy_usage_month:
    source: sensor.licznik_pradu
    cycle: monthly
    tariffs:
      - std

i tak zadziałało tzn. jest! pojawił się :wink:
Jeszcze się upewnię: u ciebie w template w mianowniku wartość 5000 jest współczynnikiem imp/kWh ???
I pytanko może nie zbyt precyzyjne (bo się na tym nie znam), skąd wziąłeś wartości “bitów”? określających “sczytywaną” wartość? Powiedzmy, że chcę stan baterii wyciągnąć. Jak do tego dojść?