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
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.
@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.
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 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ę
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ść?