TASMOTA_DEVICE readings ja, aber set geht nicht

Begonnen von Tueftler1983, 22 März 2019, 22:17:26

Vorheriges Thema - Nächstes Thema

Tueftler1983

Hallo habe grade 4 Gosund SP1 mit Tasmota in FHEM angelegt.
Die Readings kommen alle rein aber sobald ich einen Set Befehl ausführe, startet FHEM neu. Und der set Befehl wird auch nicht ausgeführt.

Im log steht dann das...
2019.03.22 22:06:11 5: set off - value:
Undefined subroutine &TASMOTA::DEVICE::send_publish called at ./FHEM/10_TASMOTA_DEVICE.pm line 185.


Kann damit jemand was anfangen und Helfen???

OdfFhem

Ich bin mir nicht sicher, ob 10_TASMOTA_DEVICE.pm noch gepflegt wird. Im Zweifel solltest Du die Tasmota-Geräte direkt über MQTT2 einbinden ...

s.a. https://forum.fhem.de/index.php/topic,92947.msg856456.html#msg856456

Beta-User

@Tueftler1983:
Ist das dein Einstieg in MQTT?

Wenn ja, würde ich ebenfalls MQTT2_SERVER statt mosquitto vorschlagen, das funktioniert problemlos. Als Infoquelle ist aber m.E. das Wiki (Praxisbeispiele zu MQTT2_DEVICE) besser, da viel aktueller (hört sich blöd an, da der von OdFhem verlinkte Thread grade mal 14 Wochen alt ist, ist aber so...)

Es gibt auch jede Menge attrTemplates zu tasmota, damit kann man in der Regel v.a. die Senderichtung auch komfortabel konfigurieren, FHEM-Konforme Readinginhalte erhalten...

TASMOTA_DEVICE kommt von "extern", warum das ggf. "kaputt" ist, kann ich nicht sagen, das hängt aber evtl. auch mit Änderungen in Meta.pm zusammen. Bei Bedarf dort nachfragen, wo du es her hast, ist "third party" und wird nicht via svn verteilt...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Ich habe bis jetzt nur die 4 Gosund SP1 und einen sonoff RFBridge die über MQTT in FHEM angebunden sind. Als Broker habe ich Moskito definiert.
Die Readings kommen alle rein das ist kein Problem aber sobald ich einen Set Befehl auf einem der Gosund ausführen startet FHEM neu.

Beta-User

Zitat von: Beta-User am 23 März 2019, 07:47:12
Wenn ja, würde ich ebenfalls MQTT2_SERVER statt mosquitto vorschlagen, das funktioniert problemlos. [...]
Was hindert dich also?

(Du kannst auch MQTT2_CLIENT an den mosquitto hängen, wenn du irgendwie an dem hängst...)

Kaputte externe Module repariere jedenfalls ich nicht, oder was war dein Anliegen mit "...kein Problem..."?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Phuh,
jetzt muss ich erstmal ne gescheite Anleitung finden wie ich von meinem vorhandenen broker Moskito und den tasmota_device Wechsel zu mqtt2.
Kennt da jemand ne gute Anleitung? Habe mir grade das wiki zu mqtt2 angeschaut aber das war nicht so das ich sagte das setze ich mal schnell um.

Beta-User

Wenn du mit zusätzlichen Devices gut leben kannst:

MQTT2_CLIENT definieren
dort autocreate auf simple setzen.

Wiki zu MQTT2_CLIENT lesen.

General-Bridge-Device per template erstellen (Achtung: die Hilfe, die bei "set <mqtt2-device> attrTemplate ?" kommt ist aktueller als das Wiki, wenn FHEM auf dem allerletzten Stand ist!) Das template erstellt jetzt direkt eine Kopie, die befindet sich im selben Raum wie das MQTT2_CLIENT-Device (der letzte Teil dieses Teils  der Anleitung wird morgen vermutlich wieder anders sein, da ich grade an dem template bzw. der Art und Weise, wo das Device hinkommt rumbastle...)

Dann schlicht warten, es sollten alle deine tasmota-Geräte automatisch erstellt werden.

Darauf dann die jeweils passenden templates anwenden.

Solldauer der Aktion: <1,5 h.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Und wie muss dann in den Gosund die MQTT konfig aussehen?
Sorry das ich so dumm Frage bin einer der am besten mit Bilder schritt für schritt Anleitungen arbeiten kann

Beta-User

So richtig verstehe ich die Frage nicht...

Also: der ESP ist jeweils mit tasmota geflasht und "spricht" auch schon mit dem mosquitto (alle unter einem eigenen, eindeutigen Namen)?
Dann brauchst du "wegen MQTT2" nix spezielles (und es ist m.E. auch egal, welches tasmota-interne template (hier: Gosund...) ausgewählt ist). MQTT2_CLIENT abonniert per default "alles", und das General-Bridge-Device macht daraus dann wieder Einzel-Devices; mit den default-Einstellungen an den tasmotas sollte das ohne weiteres klappen, wobei ich es zwischenzeitlich - jedenfalls als vorläufige Meinung - am besten finde, den Topic im der tasmota-Webinterface auf DVES_%06X zu stellen. Das dürfte auch am wenigsten "Hackel" geben, wenn du mal auf MQTT2_SERVER umstellen willst, weil dann alle das Device und die topic-Struktur angehenden Infos einheitlich sind).

Einen sinnvollen Namen kannst du dann unter FHEM für das jeweilige MQTT2_DEVICE vergeben (meine Meinung).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Hallo an dem teil hakt es bei mir. Verstehe nicht was ich da wirklich machen muss.

ZitatGeneral-Bridge-Device per template erstellen (Achtung: die Hilfe, die bei "set <mqtt2-device> attrTemplate ?" kommt ist aktueller als das Wiki, wenn FHEM auf dem allerletzten Stand ist!) Das template erstellt jetzt direkt eine Kopie, die befindet sich im selben Raum wie das MQTT2_CLIENT-Device (der letzte Teil dieses Teils  der Anleitung wird morgen vermutlich wieder anders sein, da ich grade an dem template bzw. der Art und Weise, wo das Device hinkommt rumbastle...)

Beta-User

Also:
FHEM-update machen (es gab größere Änderungen gestern).

Ich gehe davon aus, dass du ein MQTT2-Device von autocreate erstell bekommen hast?

Darauf wendest du das template "A_00_MQTT2_CLIENT_general_bridge" an (set <device> attrTemplate A_00_MQTT2_CLIENT_general_bridge).

Dann schlicht warten, bis weitere tasmota-Geräte erstellt werden :) ...

Das sollte es im wesentlichen schon gewesen sein
Die neuen Geräte dann ggf. auch mit templates "beglücken". Aber Achtung: die tasmota-templates aus mqtt2.template stellen den ESP8266 auf Kleinschreibung bei on/off etc. um! Solltest das also bei deinem Altbestand dann jeweils nur machen, wenn du die angrenzende Logik auch anfassen kannst/willst.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Hmm soweit so gut aber neue Geräte also weder die 4 Gosund noch die Sonoff RFbridge wird angelegt. Anbei zwei Screenshots.
Der erste vom MQTT2_DEVICE und der 2. von einem der Gosund MQTT einstellungen

Beta-User

Hmmm, hattest du ein update von FHEM gemacht, bevor du das template angewendet hattest?

Das sieht für mich nach dem Ergebnis nach Anwendung einer Vorversion aus.

Wäre nett, wenn du mir zu dem update-Thema eine Rückmeldung geben könntest, dann kann ich ggf. das Problem fixen, das hier dahinterstand (wenn es eines gibt).

PS: hättest du von dem MQTT2-Device ein list/bzw. besser: eine RAW-Definigion geliefert, hätte ich gestern auf dem Handy antworten können, aber damit kann ich Bilder nicht sinnvoll ansehen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Hallo, ich hatte bevor ich MQTT2 angefangen habe ein update in FHEM gemacht. Hier ein list vom MQTT2_DEVICE
Internals:
   CID        MQTT2Client
   DEF        MQTT2Client
   DEVICETOPIC MQTT2_MQTT2Client
   FUUID      5c964692-f33f-16cd-52b9-be485bdf04c51e5c
   IODev      MQTT2_Client
   LASTInputDev MQTT2_Client
   MQTT2_Client_MSGCNT 10764
   MQTT2_Client_TIME 2019-03-25 08:36:50
   MSGCNT     10764
   NAME       MQTT2_MQTT2Client
   NR         404
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-03-25 08:36:50   ENERGY_ApparentPower 10
     2019-03-25 08:36:50   ENERGY_Current  0.043
     2019-03-25 08:36:50   ENERGY_Factor   0.01
     2019-03-25 08:36:43   ENERGY_Period   0
     2019-03-25 08:36:50   ENERGY_Power    0
     2019-03-25 08:36:50   ENERGY_ReactivePower 10
     2019-03-25 08:36:50   ENERGY_Today    0.001
     2019-03-25 08:36:50   ENERGY_Total    0.002
     2019-03-25 08:36:50   ENERGY_TotalStartTime 2019-03-22T15:29:09
     2019-03-25 08:36:50   ENERGY_Voltage  240
     2019-03-25 08:36:50   ENERGY_Yesterday 0.001
     2019-03-24 14:21:33   FallbackTopic   cmnd/DVES_C3EDD0_fb/
     2019-03-24 14:21:33   GroupTopic      sonoffs
     2019-03-24 14:21:33   Hostname        Trockner-3536
     2019-03-24 14:21:33   IPAddress       192.168.2.36
     2019-03-25 07:59:14   LWT             Online
     2019-03-25 08:36:43   LoadAvg         19
     2019-03-24 14:21:33   Module          Gosund SP1 v23
     2019-03-25 08:36:43   POWER           ON
     2019-03-24 14:21:33   RestartReason   Software/System restart
     2019-03-25 08:08:30   RfReceived_Data 100401
     2019-03-25 08:08:30   RfReceived_High 930
     2019-03-25 08:08:30   RfReceived_Low  330
     2019-03-25 08:08:30   RfReceived_RfKey None
     2019-03-25 08:08:30   RfReceived_Sync 10600
     2019-03-25 08:36:43   Sleep           50
     2019-03-25 08:36:43   SleepMode       Dynamic
     2019-03-25 08:36:50   Time            2019-03-25T08:36:50
     2019-03-25 08:36:43   Uptime          1T19:37:31
     2019-03-25 08:36:43   Vcc             3.174
     2019-03-24 14:21:33   Version         6.5.0(release-sonoff)
     2019-03-24 14:21:33   WebServerMode   Admin
     2019-03-25 08:36:43   Wifi_AP         2
     2019-03-25 07:48:51   Wifi_APMac      C8:0E:14:55:25:98
     2019-03-25 08:36:43   Wifi_BSSId      C8:0E:14:55:25:98
     2019-03-25 08:36:43   Wifi_Channel    11
     2019-03-25 08:36:43   Wifi_Downtime   0T00:00:07
     2019-03-25 08:36:43   Wifi_LinkCount  1
     2019-03-25 08:36:43   Wifi_RSSI       36
     2019-03-25 08:36:43   Wifi_SSId       FRITZ!Box 6360 Cable Holger
Attributes:
   IODev      MQTT2_Client
   autocreate 1
   bridgeRegexp (tele|cmnd)[/]([^/]+)[/].*:.* "$2"
  shellies[/]([^/]+)[/].*:.* "$1"
  (ESPClient_[^/]+)[/].*:.* "$1"
   comment    Do not use very open bridgeRegexp expressions! This might lead to irritating results...
   model      A_00_MQTT2_CLIENT_general_bridge
   readingList MQTT2Client:/SmartHome/Interface/Garten/tele/STATE:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Garten/tele/SENSOR:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/tele/sonoff/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Garten/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Spuelmaschine/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Waschmaschine/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Trockner/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Waschmaschine/tele/SENSOR:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Waschmaschine/tele/STATE:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Trockner/tele/SENSOR:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Trockner/tele/STATE:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Spuelmaschine/tele/STATE:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Spuelmaschine/tele/SENSOR:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/RESULT:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Garten/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Waschmaschine/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Trockner/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Spuelmaschine/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/STATE:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Garten/cmnd/POWER:.* POWER
MQTT2Client:/SmartHome/Interface/Waschmaschine/cmnd/POWER:.* POWER
MQTT2Client:/SmartHome/Interface/Spuelmaschine/cmnd/POWER:.* POWER
MQTT2Client:/SmartHome/Interface/Trockner/cmnd/POWER:.* POWER
   room       MQTT2_DEVICE
   setStateList on off

Hoffe ich kann damit weiter helfen, bis jetzt wurde nur ein device angelegt mit dem ich nicht wirklich was anfangen kann was es ist. Davon auch ein list.
Internals:
   CID        sonoff
   DEF        sonoff
   DEVICETOPIC MQTT2_sonoff
   FUUID      5c9784da-f33f-16cd-9f76-60b9b4a50aa6e41c
   IODev      MQTT2_Client
   LASTInputDev MQTT2_Client
   MQTT2_Client_MSGCNT 2
   MQTT2_Client_TIME 2019-03-25 02:06:28
   MSGCNT     2
   NAME       MQTT2_sonoff
   NR         406
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-03-25 02:06:28   LWT             Online
     2019-03-24 14:23:40   associatedWith  MQTT2_MQTT2Client
Attributes:
   IODev      MQTT2_Client
   readingList tele/sonoff/LWT:.* LWT
   room       MQTT2_DEVICE

Beta-User

Hmm, also bist du jetzt auf dem update-Stand (jeweils nach 8:00 Uhr) von Sa. oder So.?
Das Zwischenergebnis würde zu Sa. passen...

Mach' nochmal ein update, wende auf das Device MQTT2_MQTT2Client das genannte 00...-template nochmal an und lösche dann hinterher entweder das Device MQTT2_MQTT2Client ganz oder zumindest das bridgeRegexp-Attribut da (die readingList sollte das template löschen, wenn nicht, auch diese, das verhindert nämlich das Anlegen der weiteren Devices...).

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Naja ich schließe das Thema glaube ich ab und hoffe das Matthias Kleine mir weiter hilft das Tasmota_Device wieder anständig läuft.
Das mit dem MTTQ2 bekomme ich gar nicht ans laufen und eine für "leihen" verständliche Anleitung findet sich dazu auch nicht

Beta-User

Mach es wie es für dich paßt, ich habe jedenfalls nicht vor, dazu eine Video-Anleitung zu bauen. Es gibt hinreichend Leute, die mit dem Text in den Praxisbeispielen im Wiki klarkommen, und mit den Änderungen von Samstag, welche seit Sonntag, 8:00 Uhr auch mit dem update verteilt wurden, sollte sich das ganze auch nach Anwendung des template (die du ja erstmalig auch hinbekommen hattest...) völlig stressfrei einrichten lassen.

Aber vielleicht verrätst du mir noch, wann du jetzt _genau_ das letzte update gemacht hast und hälst das nicht so "laut schweigend" im Vagen? Es war 2x ausdrücklich danach gefragt >:( .

Ansonsten ist die kurze Variante - die ziemlich sicher funktioniert - immer noch das:
Zitat von: Beta-User am 25 März 2019, 09:20:30
Mach' nochmal ein update, wende auf das Device MQTT2_MQTT2Client das genannte 00...-template nochmal an und lösche dann hinterher entweder das Device MQTT2_MQTT2Client ganz oder zumindest das bridgeRegexp-Attribut da (die readingList sollte das template löschen, wenn nicht, auch diese, das verhindert nämlich das Anlegen der weiteren Devices...).
Nach >700 Beitägen hier (leihe hin, Laie her) sollte das umsetzbar sein (das bereits gefundene template (nur jetzt in der neuen Fassung) anwenden, ein bestimmtes Device löschen), und ich gehe auch davon aus, dass mit der Erfahrung auch selbstverständlich ist, dass nach einem update auch ein shutdown restart gemacht werden muß, damit die neuen Modulversionen auch aktiv sind.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Das update habe ich Samstag mittag gemacht und nach dem Hinweis habe ich gestern abend auch nochmal eins gemacht.
Habe dann heute morgen nochmal alle MQTT2_DEVICE gelöscht und habe nach Anleitung wieder eins "MQTT2_MQTT2Client"mit dem tenplet 00 General bridge angelegt, dieses dann nachdem ein device "MQTT2_GeneralBridge" angelegt wurde wieder gelöscht.

Dann wurde ein device "MQTT2_DEVNAME" angelegt in dem aber keine Readings angelegt wurden und das ich auch keinem gerät wirklich zuordnen konnte.
Habe dann mal das templet tasmota basic darauf angewandt aber auch so bekam ich keine Readings.

Beta-User

Ah ok, jetzt wird wieder mehr klar.

Jetzt also nochmal die Anleitung auf Basis der aktuellen Stände:

Optimalerweise sollte das Gerät, auf das du das template angewendet hast, das "MQTT2_MQTT2Client"-Gerät gewesen sein.
Nachdem du das 00-er template darauf (es geht theoretisch auch irgendein anderes MQTT2_DEVICE-Gerät) angewendet hattest, sollte ein 2. Device "MQTT2_GeneralBridge" existieren.
Diese beiden Geräte sollten so aussehen:
- Die "MQTT2_GeneralBridge", die nur eine bridgeRegexp enthält, keine readingList oä.. Dieses Gerät dient dazu, anhand der eingehenden Messages bei eingeschaltetem autocreate neue Geräte zu erstellen, und diese anhand ihrer Topicstruktur zu unterscheiden und wird dauerhaft in dieser Form gebraucht.
- Das weiter bestehende Gerät "MQTT2_MQTT2Client" darf auch bleiben, aber es sollte da keine bridgeRegexp eingetragen sein, und es sollten zunächst auch keine readingList-Einträge mehr vorhanden sein; das readingList-Attribut wird von dem 00-er-template einmalig gelöscht (?).

Kommen jetzt neue messages über das IO, sollte folgendes passieren:
- messages, die der üblichen tasmota-Struktur entsprechen => jeweils ein eigenes Device für alles, was sich im zweiten Teil der topic-Struktur unterscheidet (sollte mit tele oder cmnd beginnen)
- ähnliches gilt für typische shelly und ESPEasy-Geräte.

Alles andere füllt wieder die readingList des Devices "MQTT2_MQTT2Client". Dieses Device kann man dazu nutzen, die readingList-Einträge manuell auf andere Devices zu übertragen usw.. Da kann ich mir bei Gelegenheit noch ein paar Dinge dazu überlegen, wie man das ggf. für weitere bekannte Device-Typen ähnlich wie bei der GeneralBridge vereinfachen kann, aber für's erste sollte das aber für deine Tasmota-Geräte egal sein, die sollten jeweils säuberlich getrennt von autocreate erstellt werden.

Wenn diese Anleitung soweit verständlich ist, gibt das das Grundgerüst für die neue Version bei MQTT2_CLIENT im Wiki. Dass der dortige Inhalt (nach wie vor) nicht mehr zu dem jüngsten update gepaßt hatte, hatte ich erwähnt, oder?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Gerold

Wenn ich das richtig sehe ist das full-topic in den MQTT-Einstellungen nicht ganz korrekt. Das erste Slash "/" kann (muss?) weg, nach dem %prefix% fehlt dafür eins.

Das full-topic sollte also so aussehen:  "SmartHome/Interface/%topic%/%prefix%/".

Beta-User

Zitat von: Gerold am 25 März 2019, 17:26:25
Wenn ich das richtig sehe ist das full-topic in den MQTT-Einstellungen nicht ganz korrekt. Das erste Slash "/" kann (muss?) weg, nach dem %prefix% fehlt dafür eins.

Das full-topic sollte also so aussehen:  "SmartHome/Interface/%topic%/%prefix%/".

Na ja, wenn man die GeneralBridge sinnvoll nutzen will, sollte man das auf den defaults lassen.

Also
%prefix%/%topic%
Ich würde sogar darüber hinaus empfehlen, die Voreinstellung für "Client" auch für den Topic zu nutzen, also "DVES_%06X"

Das hat den Vorteil, dass die CID dann dem entspricht, was auch MQTT2_SERVER machen würde.

Sprechende Namen kann man dann in FHEM daraus machen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Ahh okay das bedeutet ja das man bei den Tasmota Geräten die MQTT Einstellungen bis auf IP und port auf den default Einstellungen lassen muss/soll und deshalb meine Frage nach den MQTT Einstellungen in den Gosund berechtigt war.

Da ich da jetzt nicht auch noch alles wieder ändern will warte ich jetzt mal was Matthias Kleine sagt.

Ich danke euch erstmal für eure Hilfe.

Aber ich möchte die MQTT Einstellungen in den Gosund und der RFbridge jetzt nicht ändern um zu testen.
/SmartHome/Interface/%topic%/%prefix%

Beta-User

#22
Sorry für die Verwirrung - screenshots auf Textinhalt zu filtern ist nicht meins...

Du kannst das auch händisch machen, das sollte keine größere Sache sein, es müssen dann halt die ganzen Pfadangaben alle entsprechend gepflegt werden.

Dazu würde ich aber empfehlen, EINEN der tasmotas mal umzustellen (bzw. einen nackigen ESP8266 mit der firmware zu flashen) und das Standard-template mal darauf anzuwenden (oder in den templates nachzusehen, wie die setList aufgebaut ist und das als Basis nehmen). Für die readingList kannst du auch das Sammeldevice kopieren und rauslöschen, was jeweils zu viel ist.

EDIT: Was für einen Grund gibt es, bei einem Neueinstieg erst mal die Defaults zu ändern? Erschließt sich mir nicht so recht, und von daher hatte ich eigentlich auch keine große Veranlassung gesehen, auch dazu noch die ganzen Details anzusehen.
Und das zu Testzwecken bei einem der tasmotas auf default zurückzustellen wäre doch auch kein Ding, oder?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

Zitat von: Beta-User am 25 März 2019, 18:04:35

EDIT: Was für einen Grund gibt es, bei einem Neueinstieg erst mal die Defaults zu ändern? Erschließt sich mir nicht so recht, und von daher hatte ich eigentlich auch keine große Veranlassung gesehen, auch dazu noch die ganzen Details anzusehen.
Und das zu Testzwecken bei einem der tasmotas auf default zurückzustellen wäre doch auch kein Ding, oder?

Die Antwort gibts hier ab etwa der 3. Minute  :P

Beta-User

Zitat von: TomLee am 25 März 2019, 19:35:47
Die Antwort gibts hier ab etwa der 3. Minute  :P
...hätte ich mir ja eigentlich denken können...

Besonders gut gefällt mir die Stelle bei 4:25 (viel weiter habe ich nicht geschaut). Die Selbsteinschätzung sagt eigentlich schon alles ;D .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Also,
mit den original Einstellungen im Gosund in den MQTT funktioniert es. Vielen dank
Jetzt muss ich mal gucken wie ich den regex part anpassen muss um meine Geräte ohne Änderungen verwenden zu können und ggf beide module parralel nutzen zu können.
Danke nochmal für die Hilfe.

Beta-User

Danke für die Rückmeldung!

Dann baue ich bei Gelegenheit die Anleitung im Wiki um und stelle da auch nochmal deutlicher klar, dass die ganzen attrTemplates so gebaut sind, dass sie (zumindest) mit den default-Einstellungen gut laufen und man daher das erst mal so lassen sollte - nachträglich ändern kann man das ja trotzdem, wenn es mal konfiguriert ist.

Wenn du nicht viel MQTT-Gerät hast, würde ich empfehlen, alles auf MQTT2_DEVICE "umzurüsten", dann mußt du nicht doppelte Syntax lernen.
Wenn alles (auch) über MQTT2 läuft, kannst du auch den mosquitto abschalten und auf MQTT2_SERVER umstellen, das sollte ohne größere Schmerzen vonstatten gehen. Eventuelle "Schmerzen" bei der zukünftigen Umstellung kannst du minimieren, wenn du topic im Tasmota gleich wie empfohlen mit DEVS... dynamisch festlegst (dann müßte eigentlich die CID der MQTT2_DEVICE-Geräte bereits so sein, dass das für den MQTT2_SERVER auch passt. Das ist wichtig für den Fall, dass irgendwann mal die Gosund irgendwas "neues" publisht, sonst landet das ggf. in einem anderen/neuen Device).

Einen dauerhaften Parallelbetrieb von MQTT_DEVICE bzw. TASMOTA_DEVICE und MQTT2_DEVICE _für dieselbe Hardare_ sollte man m.E. nicht anstreben. Und da Rudi der Maintainer von MQTT2.* ist, darfst du auch davon ausgehen, dass das zukünftig auch reibungslos laufen wird und du nicht irgendwo auf unlösbare Probleme stößt.

Just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Eine Frage habe ich noch, für die RFbridge von Sonoff welches Templer nehme ich dafür? Für die Gosund SP1 habe ich das Sonoff POW genommen das scheint ganz zur zu funktionieren auch mit dem schalten.

Beta-User

Hmmm, für die RF-Bridge ist es m.E. (noch) nicht einfach:

Die ist m.E. nahe verwandt mit der IR-Lösung (A_01d_tasmota_ir). Es hat sich aber noch kein Freiwilliger gefunden, um daraus ein template zu machen. Wir können das gerne gemeinsam machen, dann bitte aber nicht unter einem Thread-Titel "TASMOTA_DEVICE".
Mach' am besten einen Thread dazu im MQTT-Bereich auf ("mqtt2.template für RFbridge von Sonoff entwickeln") und verlinke das im "Wünsche etc.)-Thread. Die firmware ist jetzt aber tasmota, oder?

Was ich benötigen würde, wäre eine RAW-Definition von dem Teil nach Eingang der ersten RF-messages, am besten solltest du den RESULT-Pfad in der readingList "doppeln" und einmal dann "jsonstring" ans Ende dieser Zeile schreiben. So sollten wir die "aufgebrochenen" Werte aus json2namevalue() und den Ausgangs-JSON als Text im Readinginghalt von "jsonstring" erhalten. (Klingt abstrakt, das mit dem "doppelten" Eintrag in der readingList ist aber nicht sehr schwer, wenn du das template A_02b_tasmota_2ch_shutter_invert_1 parallel ansiehst oder auf eine Kopie eines tasmota-MQTT2_DEVICE anwendest und das dann ansiehst).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Die RAW Definition der RF bridge als Tasmota device hilft dir nicht weiter oder?
Denn um sie in MQTT2 als device anzulegen muss ich die MQTT Einstellungen in der bridge zurück setzen aber dann ist die Funktion in FHEM nicht mehr gegeben. Und da wird sie für viele funktionen gebraucht.

Beta-User

Da es erst mal nur um readings geht, wäre auch die RAW-Definition eines MQTT2-Devices ausreichend.

Du könntest in der GeneralBridge die bridgeRegexp entsprechend anpassen: Also einen weiteren Eintrag erstellen und um die Stelle eine Klammer machen, an der der individualisierte Name steht; ans Ende der Zeile dann $1 (als Ziel-CID) schreiben.

(Das müßte eigentlich für fast alle deine heutigen Devices klappen, wenn du das zwischen den "/" mit "([^/]+)" erstetzt). Nur templates darauf anwenden geht eher nicht so gut...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

#31
Sorry mit den regex habe ich immer Probleme und muss da Stunden rum probieren... Ka wieso ich das nicht verstehe.

Der full tropic in der König der Bridge lautet:
/SmartHome/Interface/%topic%/%prefix%
Das tropic:
Bridge

Wie muss ich dann den Eintrag in der MQTT2 General bridge aufbauen?
So in etwa oder?
[/]([^/]+)[/]([^/]+)[/](tele|cmnd)[/]([^/]+)[/].*:.* "$1"

Beta-User

Versuch's mal mit:
/SmartHome/Interface/([^/]+)/.*:.* "$1"

Das ganze in eine weitere, eigene Zeile im Attributfeld von bridgeRegexp.

Damit sollten auch die ggf. noch nicht angepaßten tasmotas als MQTT2-Device angelegt werden. 
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Tueftler1983

Hat geklappt,
die RF Bridge ist angelegt worden und die ersten Readings sind da


/SmartHome/Interface/Bridge/cmnd/POWER:.* POWER
/SmartHome/Interface/Bridge/tele/INFO1:.* { json2nameValue($EVENT) }
/SmartHome/Interface/Bridge/tele/INFO2:.* { json2nameValue($EVENT) }
/SmartHome/Interface/Bridge/tele/INFO3:.* { json2nameValue($EVENT) }



Tueftler1983

So in der Konsole von der RFbridge steht das....
19:35:26 MQT: /SmartHome/Interface/Bridge/tele/LWT = online (beibehalten)
19:35:26 MQT: /SmartHome/Interface/Bridge/cmnd/POWER =
19:35:26 MQT: /SmartHome/Interface/Bridge/tele/INFO1 = {"Module":"Sonoff Bridge","Version":"5.12.0","FallbackTopic":"RFbridge","GroupTopic":"sonoffs"}
19:35:26 MQT: /SmartHome/Interface/Bridge/tele/INFO2 = {"WebServerMode":"Admin","Hostname":"Sonoff","IPAddress":"192.168.2.50"}
19:35:26 MQT: /SmartHome/Interface/Bridge/tele/INFO3 = {"RestartReason":"Software/System restart"}
19:35:34 MQT: /SmartHome/Interface/Bridge/tele/STATE = {"Time":"2019.03.26 19:35:34","Uptime":"0 00:00:13","Vcc":3.471,"Wifi":{"AP":1,"SSId":"FRITZ!Box 6360 Cable Holger","RSSI":68,"APMac":"C8:0E:14:xx:xx:xx"}}
19:44:21 MQT: /SmartHome/Interface/Bridge/tele/RESULT = {"RfReceived":{"Sync":12460,"Low":440,"High":1250,"Data":"128489","RfKey":"None"}}

Dazu das im MQTT2_MQTT2CLIENT
MQTT2Client:/SmartHome/Interface/Bridge/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/tele/sonoff/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Garten/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Spuelmaschine/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Trockner/tele/LWT:.* LWT
MQTT2Client:/SmartHome/Interface/Spuelmaschine/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Garten/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Trockner/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/UPTIME:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/STATE:.* { json2nameValue($EVENT) }
MQTT2Client:/SmartHome/Interface/Bridge/tele/RESULT:.* { json2nameValue($EVENT) }

Tueftler1983

Habe in der RFBridge die von MQTT2 angelegt wurde 2 Einträge hinzugefügt die letzten 2
/SmartHome/Interface/Bridge/cmnd/POWER:.* POWER
/SmartHome/Interface/Bridge/tele/INFO1:.* { json2nameValue($EVENT) }
/SmartHome/Interface/Bridge/tele/INFO2:.* { json2nameValue($EVENT) }
/SmartHome/Interface/Bridge/tele/INFO3:.* { json2nameValue($EVENT) }
/SmartHome/Interface/Bridge/tele/RESULT:.* { json2nameValue($EVENT) }
/SmartHome/Interface/Bridge/tele/STATE:.* { json2nameValue($EVENT) }

Tueftler1983

Brauchst du die Raw Definition von der angelegten RFbridge?
defmod MQTT2_Bridge MQTT2_DEVICE Bridge
attr MQTT2_Bridge IODev MQTT2_Client
attr MQTT2_Bridge readingList /SmartHome/Interface/Bridge/cmnd/POWER:.* POWER\
/SmartHome/Interface/Bridge/tele/INFO1:.* { json2nameValue($EVENT) }\
/SmartHome/Interface/Bridge/tele/INFO2:.* { json2nameValue($EVENT) }\
/SmartHome/Interface/Bridge/tele/INFO3:.* { json2nameValue($EVENT) }\
/SmartHome/Interface/Bridge/tele/RESULT:.* { json2nameValue($EVENT) }\
/SmartHome/Interface/Bridge/tele/STATE:.* { json2nameValue($EVENT) }
attr MQTT2_Bridge room MQTT2_DEVICE

setstate MQTT2_Bridge 2019-03-26 19:35:27 FallbackTopic RFbridge
setstate MQTT2_Bridge 2019-03-26 19:35:27 GroupTopic sonoffs
setstate MQTT2_Bridge 2019-03-26 19:35:27 Hostname Sonoff
setstate MQTT2_Bridge 2019-03-26 19:35:27 IPAddress 192.168.2.50
setstate MQTT2_Bridge 2019-03-26 19:35:27 Module Sonoff Bridge
setstate MQTT2_Bridge 2019-03-26 19:35:27 POWER
setstate MQTT2_Bridge 2019-03-26 19:35:27 RestartReason Software/System restart
setstate MQTT2_Bridge 2019-03-26 19:35:27 Version 5.12.0
setstate MQTT2_Bridge 2019-03-26 19:35:27 WebServerMode Admin
setstate MQTT2_Bridge 2019-03-26 19:35:27 associatedWith MQTT2_GeneralBridge


Beta-User

Zitat von: Beta-User am 26 März 2019, 14:34:24
Wir können das gerne gemeinsam machen, dann bitte aber nicht unter einem Thread-Titel "TASMOTA_DEVICE". [...]
Gilt immer noch. Daher hier nur die Info, dass wir mit deinen Daten vermutlich einen guten Start hätten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files