Kolejne pytanie początkującego.
zrobiłem na bazie wemos D1 urządzenie do odczytu danych z zewnętrznych czujników temperatury i wilgotności po rf433. Skonfigurowałem mqtt i działa - wysyła dane i mogę je czytać w mqtt explorerze ale urządzenie nie figuruje na liście w mosquito brokerze. Podpowiedzcie proszę jak mogę wyciągnąć te wartości. Najlepiej łopatologicznie.
Nie rozumiem co chciałeś powiedzieć… ale mniejsza.
Zmajstrowałeś RFLink na ESP?
Tak wnioskuję po wyglądzie tematu rf/ESP/msg.
Działa to tak - gdy odbierzesz sygnał radiowy i możliwe jest jego zdekodowanie to wynik tego umieszczany jest w w/w temacie. Wszystkie urządzenia meldują w tym jednym temacie i trzeba je na bieżąco odczytywać i na podstawie np.ID i dane gdzieś trwale przepisać. Jeśli nie zdążysz to przepadło i zostanie nadpisane.
Wg. mnie z tego powodu najlepiej sprawdza się zrobienie tego w Node_Red.
Zapoznaj się najpierw z node-red-contrib-rflink (node) - Node-RED. wraz z przykładami.
Pewnie są inne sposoby ale ja preferuje NR.
Ja też lubię node-red. Zainstalowałem tego noda, o którym piszesz. Podstawiłem wartości mojego czujnika i niestety w debug wywala błąd "msg : error “TypeError: msg.payload.indexOf is not a function”
O czymś pewnie jeszcze nie wiem.
Pokaż co wiesz to się poprawi
Moim zdaniem to powinno już działać
flows (11).json (5,5 KB)
Dla tego czujnika Xiron ID0902 przypisanego do TH_Taras powinny się w MQTT pojawić jego odczyty
Wiem niezbyt wiele
- zainstalowałem tego noda z Twojego postu.
Mój msg wygląda podobnie jak ten z przykładu: (msg = 20;01;Xiron;ID=0902;TEMP=009d;HUM=52;BAT=LOW;CHN=0002;)
Wpisałem do noda Nazwę(Xiron) i ID(0902)
zrobiłem akcję w NR Inject > rflink out > debug
i w debugu wyrzuca ten błąd
Wiem, że z “zielonymi” się trudno rozmawia.
Prawie dobrze… skoro nie działa.
Uruchom tego flow co dałem, tylko ustaw w węzłach MQTT prawidłowo swojego brokera.
Na przyszłość - to zawsze zrób export tego co chcesz pokazać.
Jak sam zobaczysz - to nie inject tylko odczytany rf/ESP/msg
Ok, działa. Muszę sobie przeanalizować na spokojnie ten proces. Podpowiesz mi jeszcze jak z tych trzech wartości (temp. hum. batt) zrobić teraz encje do wykorzystania w innych procesach?
Tak jak każdy czujnik MQTT.
Ręcznie dopisujesz w .yaml
@angler … znam to rozwiązanie, pytalem bardziej w kontekscie czy to rflink w ogóle.
Ta wersja bazuje na R29 i nie dekoduje wszystkich czujników. Ja bazuje klasyczne na Mega+ Esp jak serwer rs232 opartej na ostatniej wersji R4x
Mogę prosić o jakiś przykład? Początek znam:
- platform: mqtt
name: "moja_nazwa"
state_topic: "rf/ESP/sensor"
ale co dalej?
O tym temacie już zapomnij, on jest tylko do komunikacji.
Używasz tych tematów do których przepisałeś wartości i tak adekwatnie do tego co załączyłem
- platform: mqtt
name: "Temp ch1"
state_topic: "RFLink-out/Ch1"
unit_of_measurement: '°C'
value_template: "{{ value_json.temp }}"
- platform: mqtt
name: "Hum ch1"
state_topic: "RFLink-out/Ch1"
device_class: humidity
unit_of_measurement: '%'
value_template: "{{ value_json.hum }}"
- platform: mqtt
state_topic: "RFLink-out/Ch1"
name: "Bat ch1"
value_template: '{{ value_json.bat}}'
device_class: battery
Bardzo dziękuję za przykłady (najłatwiej mi się na nich douczyć) i CIERPLIWOŚĆ!
Czy wartości tych sensorów nie powinny się automatycznie pojawić tutaj:?
Pewnie jeszcze ciągle czegoś nie łapię…
… żeby pokazać co namodziłeś. Jak mam Ci pomóc?
Co widzisz w MQTTExplorer?
Przypisany w state_topic: temat może nie być zgodny z rzeczywistym.
Ok. no to po kolei:
mqtt explorer:
Dopisałem to co mi podałeś do configuration.yaml
przeładowałem system i zaglądnąłem do narzędzi deweloperskich, żeby sprawdzić wartości.
Ten flow, który podałeś pokazuje cały msg
flow node-red… co wychodzi i noda rflink?.. nie widzę żeby coś się zapisało w MQTT.
Coś namieszałeś, jakim cudem masz różne msg - porównaj obrazki z pierwszego postu i obecnym
ps / zmieliłeś w funkcji Topic ch1 temat !!!??? - zostaw jak było w oryginale, bo nadpisujesz wiadomość wejściową. Tam powinno być to samo co tu
state_topic: "RFLink-out/Ch1"
może być dowolny, ale taki sam w tych dwóch miejscach
W twoim przykładzie w nodzie topicCh1 jest to (nic nie zmieniałem)
To pokaż debug za tym nodem … i czy w ogóle masz dobrze skonfigurowany mqttout … cholera pokaż wreszcie ten Twój przepływ, zrób export.
Powinneś otrzymać w ex
plorerze coś takiego
Zmieniłem w funkcji Topic ch1 msg.topic na state_topic i już są wartości. Uff. Dzięki