Ich versuche die DIY Toniebox nachzubauen.
Dazu habe ich in FHEM einen MQTT2 Server aufgesetzt:
Internals:
CONNECTS 29
DEF 1883 global
FD 89
NAME MQTT2_SERVER
NR 503
PORT 1883
STATE Initialized
TYPE MQTT2_SERVER
READINGS:
2019-01-21 10:13:05 nrclients 1
2019-01-21 09:59:10 state Initialized
clients:
MQTT2_SERVER_192.168.178.57_49158 1
retain:
Attributes:
autocreate 1
Komischerweise wurde für jedesmal den gleichen RFID Tag auflegen ein neues MQTT2_DEVICE angelegt. Insgesamt 3 die so aussahen
MQTT2_NodeMCUClient_4c0b
MQTT2_NodeMCUClient_aec6
MQTT2_NodeMCUClient_f8ba
Ich habe diese devices erstmal alle wieder gelöscht. Jetzt bekomme ich aber keine neuen mehr angelegt.
Es stand sonst auch connected als state beim Server.
Was muss ich tun?
Dankeschön
Edit: Titel geändert
Ich versuche diese Projekt nachzubauen: https://haus-automatisierung.com/projekt/2018/12/16/projekt-playbox-mqtt-fhem-spotify.html (https://haus-automatisierung.com/projekt/2018/12/16/projekt-playbox-mqtt-fhem-spotify.html)
Die Topics sollten sein
/SmartHome/Interface/PlayBox/Play
/SmartHome/Interface/PlayBox/Stop
Das habe ich im log. Ist das Normal?
2019.01.21 10:35:35 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49202/NodeMCUClient-20e5 left us (keepalive check)
2019.01.21 10:36:05 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49203/NodeMCUClient-147a left us (keepalive check)
2019.01.21 10:36:35 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49204/NodeMCUClient-bc51 left us (keepalive check)
2019.01.21 10:37:05 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49205/NodeMCUClient-2009 left us (keepalive check)
2019.01.21 10:37:35 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49206/NodeMCUClient-2fbf left us (keepalive check)
2019.01.21 10:38:06 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49207/NodeMCUClient-f139 left us (keepalive check)
2019.01.21 10:38:36 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49208/NodeMCUClient-274e left us (keepalive check)
2019.01.21 10:39:06 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49209/NodeMCUClient-ed51 left us (keepalive check)
2019.01.21 10:39:36 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49210/NodeMCUClient-e196 left us (keepalive check)
2019.01.21 10:40:06 3: MQTT2_SERVER: MQTT2_SERVER_192.168.178.57_49211/NodeMCUClient-610d left us (keepalive check)
Zitat von: willib am 21 Januar 2019, 10:23:02
Was muss ich tun?
Du _solltest_
- einen anderen, aussagefähigen Titel für den Thread wählen;
- erklären, wie deine Toniebox MQTT-mäßig kommuniziert - was du schreibst klingt es danach, dass die CID teilweise aus dem RFID-Tag gebildet wird;
- lists liefern von den devices, die autocreate angelegt hatte (die werden vermutlich wieder von autocreate angelegt, wenn du FHEM neu startest).
Grundsätzlich: Was eine eigene CID hat, dürfte am Ende auch immer in einem eigenen Device landen.
Danke für die Schnelle Antwort
Die Topics enthalten die Tag Nummer. CID, weiß ich nicht.
Die devices werden nicht neu angelegt. Allerdings habe ich diverse Meldungen im LOG(siehe update erster Post)
Wenn ich mir das device manuell anlege sollte es doch bei einem bleiben. Das habe ich versucht:
Internals:
DEVICETOPIC /SmartHome/Interface/PlayBox/+
IODev MQTT2_SERVER
NAME WilliBox
NR 507
STATE ???
TYPE MQTT2_DEVICE
Attributes:
IODev MQTT2_SERVER
devicetopic /SmartHome/Interface/PlayBox/+
room MQTT2_DEVICE
subscribeReading_play /SmartHome/Interface/PlayBox/Play
subscribeReading_stop /SmartHome/Interface/PlayBox/Stop
userattr subscribeReading_play subscribeReading_stop
EDIT
Es wurde nun doch ein neues device per autcreate angelegt:
Internals:
CFGFN
CID NodeMCUClient_c43e
DEF NodeMCUClient_c43e
DEVICETOPIC MQTT2_NodeMCUClient_c43e
IODev MQTT2_SERVER
LASTInputDev MQTT2_SERVER
MQTT2_SERVER_MSGCNT 2
MQTT2_SERVER_TIME 2019-01-21 11:07:35
MSGCNT 2
NAME MQTT2_NodeMCUClient_c43e
NR 749
STATE ???
TYPE MQTT2_DEVICE
READINGS:
2019-01-21 11:07:33 Play 1772801878
2019-01-21 11:07:35 Stop 1
Attributes:
IODev MQTT2_SERVER
readingList NodeMCUClient_c43e:/SmartHome/Interface/PlayBox/Play:.* Play
NodeMCUClient_c43e:/SmartHome/Interface/PlayBox/Stop:.* Stop
room MQTT2_DEVICE
Hmmm.
Also grundsätzlich finde ich es suboptimal, die CID zu verändern, da würde ich dafür plädieren, das tunlichst zu unterlassen, u.A. wg. der Meldungen im log. (Schon klar, dass du dazu ggf. den Code auf der NodeMCU anpassen mußt und das nicht so einfach ist; aber m.E. ist das - und einiges mehr - ziemlich unglücklich gelöst mit der Zufallszahl hier: clientId += String(random(0xffff), HEX);).
Schreib da erst mal was sinnvolles hardcoded rein (wie wäre es mit der ESP-Chip-ID, dann ist der Code dynamisch?).
Dann sollte es m.E. so sein, dass jede CardID auch einen eigenen Zweig im topictree bekommt und dann als _payload_ Play bzw. Stop kommt; dann kannst du nämlich für jede Karte direkt auch ein Reading mit demselben Namen anlegen. Da immer nur eine Karte aufgelegt sein kann, sollte eigentlich dann immer ein Stop-Event vor dem nächsten Play kommen.
Ggf. kannst du dann das Teil mit einer bridgeRegexp versehen, um aus jedem Tag ein einzelnes Device zu machen, oder du packst das jeweils in eigene Readings am "NodeMCU-Device". Den Ansatz, da über userattr zu gehen (oder userReadings), finde ich im ersten Angang mal suboptimal, ohne das näher analysieren zu können.
Und der Threadtitel ist immer noch unglücklich?
Wie wäre es mit: "Wie Toniebox als MQTT2 Device konfigurieren?"
Bitte verlink mal die DIY Toonie
Danke Beta-User, dass du dir die Zeit genommen hast auch in den Code vom ESP zu schauen.
Ich habe die CID jetzt fest auf WilliBox geändert. Jetzt klappt es. Die readings werden aktualisiert wenn ich einen Tag auflege.
Für deine Anderen Anmerkungen muss ich tiefer einsteigen.
Ich teste weiter.
Zitat von: masterpete23 am 21 Januar 2019, 11:47:31
Bitte verlink mal die DIY Toonie
Es gibt einen Forum Thread dazu
https://forum.fhem.de/index.php?topic=95552.0 (https://forum.fhem.de/index.php?topic=95552.0)
aber ich versuche eigentlich im ersten Schritt nur das
https://haus-automatisierung.com/projekt/2018/12/16/projekt-playbox-mqtt-fhem-spotify.html (https://haus-automatisierung.com/projekt/2018/12/16/projekt-playbox-mqtt-fhem-spotify.html)
Ausgabe dann später wenn ich die Events in FHEM habe per Sonos.