Kurz und knapp: Was kommt hier rein?
TEMPLATE.png
Mein Broker sieht so aus:
MQTT.png
Vielen Dank
Müßte nachschauen im Quelltext, da mobil: Versuche es mit
home/OMG_ATOM_L
Das ergibt diese Fehlrtmeldung:
FEHLER-01.png
Bin etwas ratlos :o
Kann die Fehlermeldung nicht wirklich entziffern (deletereading nicht bekannt?!?), aber dein FHEM ist schon insgesamt aktuell, oder?
heute nacht erst den Container upgedatet
docker fhem.png
update check sagt:
Downloading https://fhem.de/fhemupdate/controls_fhem.txt
List of new / modified files since last update:
UPD ./CHANGED
UPD FHEM/49_SSCam.pm
UPD FHEM/76_SolarForecast.pm
New entries in the CHANGED file:
- feature: 76_SolarForecast: add temporary Migrate Getter x_migrate,
Implementation of a Messaging System
- change: 49_SSCam: fix Warning, set verified Version to 9.2.2
- change: 76_SolarForecast: internal code change for data collection
Hmmm, ok, da fehlt ein backslash in https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L4785
Manuell ergänzen (dann AttrTemplate_Initialize() ausführen) oder warten, bis ich dazu ein update fahren kann.
Keine unnötige Eile.
Ich vermute den Fehler ja prinzipiell eher bei mir.
Dann warte ich eben ein Wenig.
Das ging ja fix.
Dankeschön :)
So, und was habe ich jetzt wieder vergessen, zu installieren?
Screenshot_20250122_003115_Chrome.png
[code]define OMG_2 MQTT2_DEVICE
attr OMG_2 bridgeRegexp $DEVICETOPIC/433toMQTT[:/].* 'oMQTTgw_433'\
$DEVICETOPIC/IRtoMQTT[:/].* 'oMQTTgw_IR'\
$DEVICETOPIC/CLIMAtoMQTT/([a-zA-Z0-9]+)[:/].* "OMG_ATOM_L_$1"
attr OMG_2 comment For syntax wrt. update and BT commands see https://github.com/1technophile/OpenMQTTGateway/releases/tag/v0.9.7
attr OMG_2 devStateIcon online:10px-kreis-gruen offline.*:10px-kreis-rot
attr OMG_2 devicetopic home/OMG_ATOM_L
attr OMG_2 event-on-change-reading last,LWT,version,Sys_.*
attr OMG_2 icon mqtt
attr OMG_2 model OpenMQTTGateway_MCU
attr OMG_2 periodicCmd deleteReadings:1440
attr OMG_2 readingList $DEVICETOPIC/LWT:.* LWT\
$DEVICETOPIC/version:.* version\
$DEVICETOPIC/SYStoMQTT[:/].* { json2nameValue($EVENT,'Sys_')}\
$DEVICETOPIC/BTtoMQTT/([0-9A-Z]+):.* { $TOPIC =~ m,BTtoMQTT/([0-9A-Z]+),;; json2nameValue($EVENT,"${1}_") }\
$DEVICETOPIC/BTtoMQTT/([0-9A-Z]+)/[^:]+:.* { $TOPIC =~ m,BTtoMQTT/([0-9A-Z]+)/([^:]+),;; { "${1}_$2"=>$EVENT }}\
home/home_presence/OMG_ATOM_L:.* { return if $EVENT !~ m,(..):(..):(..):(..):(..):(..),;; {last => uc($1.$2.$3.$4.$5.$6)}}\
homeassistant/.+?/config:.* {}
attr OMG_2 setList restart:noArg $DEVICETOPIC/commands/MQTTtoSYS/config {"cmd":"restart"}\
update { my $payload = $EVENT;; $payload =~ s/$EVTPART0 //;; qq($DEVICETOPIC/commands/MQTTtoSYS/firmware_update $payload) }\
BT_config { my $payload = $EVENT;; $payload =~ s/$EVTPART0 //;; qq($DEVICETOPIC/commands/MQTTtoBT/config $payload) }\
BT_scan_now:noArg $DEVICETOPIC/commands/MQTTtoBT/config {"interval":0}\
BT_scan_interval:textField $DEVICETOPIC/commands/MQTTtoBT/config {"interval":$EVTPART1}\
BT_blacklist:textField $DEVICETOPIC/commands/MQTTtoBT/config {"black-list":[$EVTPART1]}\
BT_whitelist:textField $DEVICETOPIC/commands/MQTTtoBT/config {"white-list":[$EVTPART1]}\
BT_minrssi:slider,-110,1,0 $DEVICETOPIC/commands/MQTTtoBT/config {"minrssi":$EVTPART1}\
BT_hasspresence:true,false $DEVICETOPIC/commands/MQTTtoBT/config {"hasspresence":$EVTPART1}\
deleteReadings:noArg {fhem "deletereading -q $NAME (?!associatedWith|attrTemplateVersion|last|LWT|version|Sys_).* 86400"}
attr OMG_2 stateFormat <a href="http://Sys_ip" target="_blank">\
LWT\
</a>Version: version
# FUUID 678d513c-f33f-901d-0c77-1136c0cc8e5e4b6b
# FVERSION 10_MQTT2_DEVICE.pm:0.295280/2025-01-16
# NAME OMG_2
# NR 170
# STATE <a href="http://Sys_ip" target="_blank">
#LWT
#</a>Version: version
# TYPE MQTT2_DEVICE
# periodicCounter 149
# READINGS:
# 2025-01-21 13:10:16 attrTemplateVersion 20250120
# 2025-01-22 00:28:03 state BT_hasspresence
# hmccu:
#
setstate OMG_2 <a href="http://Sys_ip" target="_blank">\
LWT\
</a>Version: version
setstate OMG_2 2025-01-21 13:10:16 attrTemplateVersion 20250120
setstate OMG_2 2025-01-22 00:28:03 state BT_hasspresence
[/code]
Den ESP hast du mal neu gestartet?
Ja, und FHEM natürlich auch.
"Kurz und knapp": Keine Ahnung. Jedenfalls nicht, ohne dass weitere Infos geliefert werden - siehe angepinnte Beiträge. Ich würde im Moment auf einen externen Broker tippen, manueller Anlage des MQTT2_DEVICE und irgendwelchen Problemen beim IO (MQTT2_CLIENT).
Ja, der Broker läuft extern auf einer Synology DS.
Andere Geräte kommunizieren fehlerfrei damit
der Aussen-Temp-Sensor zb:
define Aussen_sensor MQTT_DEVICE
attr Aussen_sensor icon temp_outside
attr Aussen_sensor room 011_MQTT,904_Sensor
attr Aussen_sensor stateFormat Temp: Temperature °C \ Luftfeuchte: Humidity %
attr Aussen_sensor subscribeReading_Battery_Low zigbee2mqtt/zb-sensor-aussen-01/battery
attr Aussen_sensor subscribeReading_Battery_Value zigbee2mqtt/ZB-sensor-aussen-001/battery
attr Aussen_sensor subscribeReading_Humidity zigbee2mqtt/ZB-sensor-aussen-001/humidity
attr Aussen_sensor subscribeReading_Temperature zigbee2mqtt/ZB-sensor-aussen-001/temperature
# FUUID 671265a6-f33f-901d-4938-d7c70ad1dcf06ba9
# FVERSION 10_MQTT_DEVICE.pm:0.249520/2021-09-11
# IODev Mosquitto
# NAME Aussen_sensor
# NR 158
# STATE Temp: 5.16 °C \ Luftfeuchte: 70.78 %
# TYPE MQTT_DEVICE
# eventCount 86
# READINGS:
# 2025-01-22 13:08:50 Battery_Value 38
# 2025-01-22 13:08:50 Humidity 70.78
# 2025-01-22 13:01:08 IODev Mosquitto
# 2025-01-22 13:08:50 Temperature 5.16
# 2025-01-22 13:08:50 transmission-state incoming publish received
# message_ids:
# sets:
# subscribe:
# zigbee2mqtt/zb-sensor-aussen-01/battery
# zigbee2mqtt/ZB-sensor-aussen-001/battery
# zigbee2mqtt/ZB-sensor-aussen-001/humidity
# zigbee2mqtt/ZB-sensor-aussen-001/temperature
# subscribeExpr:
# ^zigbee2mqtt\/zb-sensor-aussen-01\/battery$
# ^zigbee2mqtt\/ZB-sensor-aussen-001\/battery$
# ^zigbee2mqtt\/ZB-sensor-aussen-001\/humidity$
# ^zigbee2mqtt\/ZB-sensor-aussen-001\/temperature$
# subscribeQos:
# zigbee2mqtt/ZB-sensor-aussen-001/battery 0
# zigbee2mqtt/ZB-sensor-aussen-001/humidity 0
# zigbee2mqtt/ZB-sensor-aussen-001/temperature 0
# zigbee2mqtt/zb-sensor-aussen-01/battery 0
# subscribeReadings:
# zigbee2mqtt/ZB-sensor-aussen-001/battery:
# cmd
# name Battery_Value
# zigbee2mqtt/ZB-sensor-aussen-001/humidity:
# cmd
# name Humidity
# zigbee2mqtt/ZB-sensor-aussen-001/temperature:
# cmd
# name Temperature
# zigbee2mqtt/zb-sensor-aussen-01/battery:
# cmd
# name Battery_Low
#
setstate Aussen_sensor Temp: 5.16 °C \ Luftfeuchte: 70.78 %
setstate Aussen_sensor 2025-01-22 13:08:50 Battery_Value 38
setstate Aussen_sensor 2025-01-22 13:08:50 Humidity 70.78
setstate Aussen_sensor 2025-01-22 13:01:08 IODev Mosquitto
setstate Aussen_sensor 2025-01-22 13:08:50 Temperature 5.16
setstate Aussen_sensor 2025-01-22 13:08:50 transmission-state incoming publish received
oder die Steckdose:
define Blitzwolf_02 MQTT_DEVICE
attr Blitzwolf_02 alias Blitzwolf 02 - TV
attr Blitzwolf_02 devStateIcon ON:message_socket_ch@green mainOff:message_socket_ch@red OFF:message_socket_ch@red
attr Blitzwolf_02 group Stecker
attr Blitzwolf_02 icon message_socket
attr Blitzwolf_02 publishSet ON OFF TOGGLE Power/stecker/tasmota_blitz_02/cmnd/POWER1
attr Blitzwolf_02 room 011_MQTT,101_Wohnzimmer,901_Stecker
attr Blitzwolf_02 subscribeReading_HASS_STATE Power/stecker/tasmota_blitz_02/tele/HASS_STATE
attr Blitzwolf_02 subscribeReading_LWT Power/stecker/tasmota_blitz_02/tele/LWT
attr Blitzwolf_02 subscribeReading_STATE Power/stecker/tasmota_blitz_02/stat/POWER
attr Blitzwolf_02 subscribeReading_state Power/stecker/tasmota_blitz_02/stat/POWER
attr Blitzwolf_02 webCmd ON:OFF:TOGGLE
# FUUID 668db873-f33f-901d-7dd7-f1dab058d3267685
# FVERSION 10_MQTT_DEVICE.pm:0.249520/2021-09-11
# IODev Mosquitto
# NAME Blitzwolf_02
# NR 141
# STATE ON
# TYPE MQTT_DEVICE
# eventCount 4
# READINGS:
# 2025-01-22 13:01:08 IODev Mosquitto
# 2025-01-22 13:01:13 LWT Online
# 2024-11-15 01:35:02 STATE ON
# 2025-01-18 19:59:32 state ON
# 2025-01-22 13:01:13 transmission-state incoming publish received
# message_ids:
# publishSets:
# :
# topic Power/stecker/tasmota_blitz_02/cmnd/POWER1
# values:
# ON
# OFF
# TOGGLE
# sets:
# OFF
# ON
# TOGGLE
# subscribe:
# Power/stecker/tasmota_blitz_02/tele/HASS_STATE
# Power/stecker/tasmota_blitz_02/tele/LWT
# Power/stecker/tasmota_blitz_02/stat/POWER
# subscribeExpr:
# ^Power\/stecker\/tasmota_blitz_02\/tele\/HASS_STATE$
# ^Power\/stecker\/tasmota_blitz_02\/tele\/LWT$
# ^Power\/stecker\/tasmota_blitz_02\/stat\/POWER$
# subscribeQos:
# Power/stecker/tasmota_blitz_02/stat/POWER 0
# Power/stecker/tasmota_blitz_02/tele/HASS_STATE 0
# Power/stecker/tasmota_blitz_02/tele/LWT 0
# subscribeReadings:
# Power/stecker/tasmota_blitz_02/stat/POWER:
# cmd
# name state
# Power/stecker/tasmota_blitz_02/tele/HASS_STATE:
# cmd
# name HASS_STATE
# Power/stecker/tasmota_blitz_02/tele/LWT:
# cmd
# name LWT
#
setstate Blitzwolf_02 ON
setstate Blitzwolf_02 2025-01-22 13:01:08 IODev Mosquitto
setstate Blitzwolf_02 2025-01-22 13:01:13 LWT Online
setstate Blitzwolf_02 2024-11-15 01:35:02 STATE ON
setstate Blitzwolf_02 2025-01-18 19:59:32 state ON
setstate Blitzwolf_02 2025-01-22 13:01:13 transmission-state incoming publish received
Ist etwa mein MQTT-System Das Problem?
Ich versuche folgende Struktur einzuhalten
KLASSE/RAUM/GERÄT/PREFIX/PAYLOAD
Bei Z2M gibt das System sein eigenes Schema vor, da lasse ich das von NodeRed ind meins übersetzen.
Zitat von: onkel_joerg am 22 Januar 2025, 13:32:46Ist etwa mein MQTT-System Das Problem?
Jein.
Wenn du die alte Einbindung (Modul 00_MQTT als IO) verwendest, kommt bei einem MQTT2_DEVICE halt nichts an => umstellen oder zusätzlich eben einen MQTT2_CLIENT anlegen (das ist die modernere Variante für 00_MQTT).
Danke für die schnelle Antwort.
Der MQTT2_Client dient dann quasi als Übersetzer zum neuen System?
Gibts da irgendwo ein HowTo?
(ich habe eine recht flache Lernkurve, aber reichlich Zeit, da Rentner 8) )
EDIT: Kaum hat man das MQTT_CLIENT angelegt, rauschen auch schon die Readings rein.
beim stateFormat musste ich es auf "Version: Sys_version" ändern, so kommt es vom Gateway.
Zitat von: onkel_joerg am 20 Januar 2025, 10:36:51Das ergibt diese Fehlrtmeldung:
FEHLER-01.png
Bin etwas ratlos :o
Auch wenn das nichts zum Fehler dazu beiträgt:
deletereading
s ist natürlich kein bekannter Befehl
deletereading hingegen schon ;)
VG
Andreas
Zitat von: flummy1978 am 23 Januar 2025, 14:53:26deletereadings ist natürlich kein bekannter Befehl
"deleteReadings" ist ein Eintrag in der setList...
Das Problem rührte daher, dass das für FHEM nicht erkennbar war, dass auch diese Zeile zum Attributinhalt gehören soll, also hat es versucht, diesen "unbekannten Befehl" auszuführen...
Zitat von: Beta-User am 23 Januar 2025, 15:01:05"deleteReadings" ist ein Eintrag in der setList...
Das Problem rührte daher, dass das für FHEM nicht erkennbar war, dass auch diese Zeile zum Attributinhalt gehören soll, also hat es versucht, diesen "unbekannten Befehl" auszuführen...
Aaahh das habe ich übersehen und danke für die Aufklärung.
Hab aus dem Grund drauf hingewiesen, weil ich schon mal den gleichen Fehler gemacht habe und dann vor lauter Bäumen keinen Wald mehr gesehen habe -.-
Zitat von: onkel_joerg am 20 Januar 2025, 01:59:24Mein Broker sieht so aus:
MQTT.png
Nur als kleiner Tipp: Falls nicht alle 149 BLE Geräte von dir selbst sind vielleicht eine white-list nur mit deinen Gräten anlegen, damit die MQTT Pipeline nicht dauernd mit tausenden unnötigen Nachrichten voll ist. Das macht es auch einfacher mit MQTT Explorer nur die eigenen Geräte zu überwachen :)
https://docs.openmqttgateway.com/use/ble.html#setting-a-white-or-black-list
Das war ja der eigentliche Grund, warum ich das in FHEM angegangen bin.
149 war ja nur kurz nach dem Start. da kommen locker über 1.000 zusammen.
Wer eine Familie mit Apple Airtags im Haus hat, weiß ein Lied davon zu singen.
Die Dinger wechseln die MAC, wie Casanova die Frauen.
LOL, kenne ich von mir auch, wo alle Apple Geräte so alle 15 Minuten die MAC Adresse wechseln mit iBeacon und Continuity Broadcasts.
Mit Theengs Gateway können bisher aber zumindest die wechselnden Mac Adressen von Apple Watch, iPhone, iPad, AirPods/Beats Buds zu eindeutigen statischen Identity MAC Adressen aufgelöst werden, um diese Geräte als Anwesenheit-Tracker zu verwenden.
Zur Whitelist muss man noch anmerken, dass man diese nicht nur mit Mac Adressen "XX:YX:XX:XX:XX:XX",YY:YY:YY:YY:YY:YY" (offenbar mit Anführungszeichen) befüllen, sondern die Liste in den commands auch scharf schalten muss.
{"ignoreWBlist":false} .
Vielleicht lässt sich das ja in das Template einbauen 😉
Ich merke gerade, dass der Link zum White- Black-List Abschnitt zwar korrekt angezeigt wird, aber irgendwie beim drauf klicken weiter oben auf der Seite landet - hmmm.
Aber die URL stimmt schon, wenn man kopiert und im Browser einfügt ;) da steht das auch mit "ignoreWBlist", was als default auf false steht, aber auch praktisch ist wenn man es in einem Template schnell verfügbar hat zum ein- und aus schalten einer White- oder Black-List.
Wie bekomme ich eigentlich die ganzen iBeacon readings wieder weg, ohne das Device zu löschen?
Zitat von: onkel_joerg am 28 Januar 2025, 00:04:39Wie bekomme ich eigentlich die ganzen iBeacon readings wieder weg, ohne das Device zu löschen?
Sollte der periodicCmd machen.
Zitat von: onkel_joerg am 27 Januar 2025, 14:14:02Vielleicht lässt sich das ja in das Template einbauen 😉
Hmmm, mal sehen, ob ich das nicht wieder vergesse...
Es gibt im Übrigen ja schon den allgemeinen "BT_config"-setter. Dinge, die man eher selten braucht (?), lassen sich darüber schon seit langem einigermaßen komfortabel übergeben ;) .
Zitat von: Beta-User am 28 Januar 2025, 06:06:01Zitat von: onkel_joerg am 28 Januar 2025, 00:04:39Wie bekomme ich eigentlich die ganzen iBeacon readings wieder weg, ohne das Device zu löschen?
Sollte der periodicCmd machen.
Muss ich das selbst irgendwie anstoßen, oder einen Parameter irgendwo übergeben?
Sorry für die möglicherweise dummen Fragen, aber ich bin da fast komplett unbeleckt.
Etwas NR geht, aber dann ist auch schon Ende.
Zitat von: onkel_joerg am 28 Januar 2025, 12:48:00Muss ich das selbst irgendwie anstoßen, oder einen Parameter irgendwo übergeben?
Zurück zu einem der Startpunkte - "deleteTeadings" ;) wird als periodicCmd einmal am Tag (alle 1440 Sekunden) ausgeführt... Das ist jedenfalls das, was per attrTemplate jedenfalls so eingestellt sein sollte (aktuell: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L4787)
Zitat von: Beta-User am 28 Januar 2025, 15:02:36Zurück zu einem der Startpunkte - "deleteTeadings" ;) wird als periodicCmd einmal am Tag (alle 1440 Sekunden) ausgeführt... Das ist jedenfalls das, was per attrTemplate jedenfalls so eingestellt sein sollte (aktuell: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L4787)
Habe den Wert mal zum Test auf "1" gesetzt.
Da sollten die Werte dann doch spätestens nach 2 Minuten weg sein, oder?
Sind sie leider nicht.
Ich muss wohl doch mit der großen Schippe zulangen...
Browser refresh?
Nachtrag: Gelöscht wird auch nicht alles, es gibt Ausnahmen, und auch bei den "normalen BT-Readings" wird nur gelöscht, was älter ist wie ein Tag.
Ist Eh zu spät.
ich habe jetzt erst mal einiges zu lesen (und lernen) mal sehen, ob ich es schaffe, meine Amazfit Smartwatch einzubinden.
OMG erkennt sie und zeigt auch die Pulsmessung an.
Ich habe festgestellt, dass meine MQTT_DEVICES auch funktionieren, wenn ich denen den MQTT_Client als IO-Device gebe.
Zitat von: Beta-User am 28 Januar 2025, 08:34:38Hmmm, mal sehen, ob ich das nicht wieder vergesse...
OK, ist drin...
Zitat von: onkel_joerg am 28 Januar 2025, 19:41:05Ich habe festgestellt, dass meine MQTT_DEVICES auch funktionieren, wenn ich denen den MQTT_Client als IO-Device gebe.
Ähm, irgendwie paßt diese Schlussfolgerung nicht zu meinem (etwas angegrauten) Verständnis der dispatch-Mechanismen beider Modul-Familien...
Falls gemeint war: Es ist relativ schnell gemacht, von MQTT+MQTT_DEVICE auf MQTT2_CLIENT+MQTT2_DEVICE umzustellen: Ja, das ist in der Regel sehr einfach :) .
Wenn man MQTT2_CLIENT verwendet, und relativ viel MQTT-Traffic hat, den man nicht in FHEM braucht, sollte man sich dann aber mal mit dem "subscriptions"-Attribut beschäftigen. Die (automatische Vor-) Auswahl dessen, was beim Server abboniert wird, ist beim alten IO-Modul "00_MQTT" deutlich granularer ;) .
Ich hatte die alte FHEM-Mosquitto Verbindung mal deaktiviert, damit von der selben IP nicht mehrere Verbindungen zum Broker laufen (ich glaube, das findet der nicht so prickelnd) und habe bei den alten MQTT_Devices (ohne 2) das IO_Device auf den MQTT2_Client umgestellt.
Die funktionierten sofort (einfache Tasmota Stecker)
Zitat von: onkel_joerg am 31 Januar 2025, 01:53:07(ich glaube, das findet der nicht so prickelnd)
...ich glaube ja, dass das dem ziemlich egal ist, solange man für jede der beliebig vielen Verbindungen je eine eigene ClientId verwendet - genauso wie er es andersrum als "gar nicht prickelnd" betrachtet, wenn man es mit derselben ClientId von verschiedenen IP's aus versucht (wobei da nicht drauf ankommt, ob es dieselbe IP ist)...
Zitathabe bei den alten MQTT_Devices (ohne 2) das IO_Device auf den MQTT2_Client umgestellt.
Die funktionierten sofort (einfache Tasmota Stecker)
Aha....
Irgendwie wäre ich davon ausgegangen, dass dann im Client-Modul (MQTT_DEVICE) eine ParseFn vorhanden sein müßte (siehe das Stichwort in https://wiki.fhem.de/wiki/DevelopmentModuleIntro). Na ja...
(Falls jemand mitliest, der das ausprobieren möchte und abweichende Ergebnisse hat: Nicht wundern! Man muss dem MQTT2_CLIENT ausdrücklich (per Attribut) mitteilen, dass er auch 10_MQTT_DEVICE als Client-Modul akzeptiert und dann das letztgenannte Modul ziemlich heftig patchen, damit man solche Beobachtungen machen kann. Rudi war es jedenfalls afair "damals" zu viel Aufwand, MQTT_DEVICE anzupassen und hat daher MQTT2_DEVICE geschrieben...)