mqtt2.template: bugs, Fragen, Anregungen

Begonnen von Beta-User, 15 Dezember 2018, 11:44:43

Vorheriges Thema - Nächstes Thema

moskito

Es legt keinen 2. Channel an, das war eigentlich das auffälligste.
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

Beta-User

Danke für den Hinweis; hatte da ergänzend was umgestellt und offenbar dabei die beiden 2-kanaligen Shelly übersehen... Jetzt (svn-Version bzw. nach dem morgigen update) sollte es wieder (anders) funktionieren :) .
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

CBSnake

Hi,

ich häng mich mal ran, warte aber das morgige update ab :-)
Ich kann keinen meiner beiden shelly 2.5 mehr schalten (über des webinterface der shelly gehts noch) und bekomm auch keine Werte (Power Schaltzustand usw) mehr in FHEM.

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

Beta-User

Zitat von: CBSnake am 17 Juni 2020, 13:07:07
ich häng mich mal ran, warte aber das morgige update ab :-)
Ich kann keinen meiner beiden shelly 2.5 mehr schalten (über des webinterface der shelly gehts noch) und bekomm auch keine Werte (Power Schaltzustand usw) mehr in FHEM.
Ähm, da werde ich nicht so recht schlau draus:
- das attrTemplate (u.a.) für die beiden shelly2-Modelle hatte ich umgebaut, aber vorrangig im Hinblick auf den allgemeinen Umbau der "Grundstruktur" aller mehrkanaligen Devices. Dabei habe ich ein zentrales (nicht speziell auf MQT2_DEVICE gemünztes) attrTemplate eingeführt, das mit ein paar Optionen aufgerufen werden kann und dann Kopien anlegt (der Teil war mir raus => jetzt gefixt),  die Querbezüge (comment+associatedWith) setzt usw..
- Bzgl. Shelly scheinen ein paar neue Topics dazugekommen zu sein (temperature_f usw.). Da habe ich auch was ergänzt, das könnte bzgl. Power helfen, hat aber mit dem Schalten nichts zu tun.

ABER: Wenn ein ehemals funktionierendes Device (danach klingt es, oder habe ich den Punkt falsch verstanden?) einfach nur nicht mehr funktioniert, klingt das danach, als wäre irgendwas grundsätzlich geändert worden. Da der Hersteller scheinbar grade neue firmware-Versionen rausbringt, wäre das m.E. mal näher zu untersuchen und ggf. dann die betreffenden templates insgesamt zu überarbeiten.

Dazu wäre aber interessant zu wissen, ob ein fw-update durchgeführt wurde, und was ggf. autocreate daraus so an Device/readingList macht... Details dazu dann aber bitte nicht hier, sondern in dem Shelly-attrTemplate-Thread.
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

CBSnake

Hi,

eigentlich wollte ich dir jetzt ein List von einem shelly posten, hab dann aber gemerkt da haut was nicht hin ;-) Update um 03:00 letzte Readings aber 05:00 hab jetzt den PI mal durchgestartet, geht wieder *puhh* sorry für die aufregung

Grüße
Achim
FHEM auf Debian 10, HM-Wlan, JeeLink-Wlan, Wlanduino, ConBee, TP-Link Steckdose, GHoma Steckdosen, Shelly Steckdosen

bicmac

Hi,
OpenSprinkler unterstützt seid heute ja MQTT und damit kan ich auch endlich den Status der Bewässerungsanlage ohne HTTPMOD abfragen.
Er meldet ansich auch schon gut an FHEM und hat das Device angelegt. 
Leider sehe ich in der Erstellung von templates nicht wirklich durch und wollte fragen ob mir jemand dort helfen bzw mir ein template bauen könnte.
Hier die Beschreibung der Topics in der aktuellen FW Version von Opensprinkler:

https://openthings.freshdesk.com/support/solutions/articles/5000859089-how-to-use-mqtt

Firmware 2.1.9(4) Topics:
At the moment of this writing, the OpenSprinkler firmware only supports publishing data to the broke. You can use a subscriber client (e.g. the mosquitto_sub command, or a mobile MQTT client, or a home automation hub that supports MQTT) to receive the data. A list of currently supported topics are detailed below:

The root topic name is always opensprinkler. In future firmware, we will allow users to customize the root topic, in order to provide better support for multiple OpenSprinkler devices you may have.
opensprinkler/system: this topic receives {"state":"started"} message when the controller boots.
opensprinkler/station/x: where x is the index (starting from 0) of the station/zone. For example, the first zone is 0, the second zone is 1 and so on. This topic receives {"state":1} message when station/zone x starts running, and {"state":0,"duration":ss} message when the zone finishes running, where ss is the number of seconds that it ran. To receive data for all stations, you can subscribe to wildcard topic opensprinkler/station/#
opensprinkler/sensor1: this topic receives {"state":1} when sensor 1 activates and {"state":0} when sensor 1 deactivates.
opensprinkler/sensor2: similar to above but for sensor 2.
opensprinkler/raindelay: similar to above but for rain delay.
opensprinkler/sensor/flow: this topic receives {"count":cc,"volume":vv} when the flow sensor generates data (usually when a zone finishes running), where cc is the flow count, and vv is the amount of volume.


Beta-User

Das sollte sich hinbekommen lassen.

Bitte mach' einen neuen Thread dazu auf und poste dort eine RAW-Definition.
Wäre gut, wenn sich dann ggf. noch jemand einklinken würde, der das noch hat/nutzt.

Das das ganze im Moment nicht aktiv gesteuert werden kann, sondern nur zur Statusanzeige gedacht zu sein scheint, dürfte das nicht allzu kompliziert sein.

Wenn ich das so lese, kann man auf der opensprinkler-Seite (derzeit noch) nichts einstellen, also insbesondere nichts an den Topic-Pfaden ändern?

Falls wir mittelfristig darüber auch steuern können sollen, wäre die Frage, ob man die einzelnen Zonen als eigene Devices anlegt (bräuchte man für FHEM-on-for-timer)?
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

bicmac

ja ich denke früher oder später kann man damit auch steuern und amit wären pro zone eigene Devices ggf garnicht schlecht.
für den Anfang jetzt würde mir auch eine nur anzeige in dem normalem device reichen.
ich hatte es mit folgender Readinglist probiert aber die ging nicht. :-(


OS_D8803963182F:opensprinkler/availability:.* availability
OS_D8803963182F:opensprinkler/system:.* { "system-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/sensor1:.* { "sensor1-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/sensor1:.* { "sensor2-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/raindelay:.* { "raindelay-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/sensor/flow:.* { "flow-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/0:.* { "Station0-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/1:.* { "Station1-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/2:.* { "Station2-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/3:.* { "Station3-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/4:.* { "Station4-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/5:.* { "Station5-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/6:.* { "Station6-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/7:.* { "Station7-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/8:.* { "Station8-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/9:.* { "Station9-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/10:.* { "Station10-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/11:.* { "Station11".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/12:.* { "Station12-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/13:.* { "Station13".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/14:.* { "Station14-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/15:.* { "Station15-".json2nameValue($EVENT) }
OS_D8803963182F:opensprinkler/station/16:.* { "Station16-".json2nameValue($EVENT) }



Ich mache mal einen neuen thread dazu auf.

Beta-User

Gut; aber gleich eine Anmerkung zu json2nameValue(). Das hat eine andere Syntax und der Perl-Aufruf sollte (exemplarisch für Sensor 1 => S1_...) eher so aussehen:
{ json2nameValue($EVENT,'S1_',$JSONMAP) }
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

bicmac

ja so hat es nun geklappt:


attr Opensprinkler readingList OS_D8803963182F:opensprinkler/availability:.* availability\
OS_D8803963182F:opensprinkler/system:.* { json2nameValue( $EVENT, 'System_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/sensor1:.* { json2nameValue( $EVENT, 'Sensor1_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/sensor2:.* { json2nameValue( $EVENT, 'Sensor2_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/raindelay:.* { json2nameValue( $EVENT, 'raindelay_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/sensor/flow:.* { json2nameValue( $EVENT, 'flow_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/0:.* { json2nameValue( $EVENT, 'Station0_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/1:.* { json2nameValue( $EVENT, 'Station1_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/2:.* { json2nameValue( $EVENT, 'Station2_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/3:.* { json2nameValue( $EVENT, 'Station3_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/4:.* { json2nameValue( $EVENT, 'Station4_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/5:.* { json2nameValue( $EVENT, 'Station5_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/6:.* { json2nameValue( $EVENT, 'Station6_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/7:.* { json2nameValue( $EVENT, 'Station7_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/8:.* { json2nameValue( $EVENT, 'Station8_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/9:.* { json2nameValue( $EVENT, 'Station9_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/10:.* { json2nameValue( $EVENT, 'Station10_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/11:.* { json2nameValue( $EVENT, 'Station11_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/12:.* { json2nameValue( $EVENT, 'Station12_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/13:.* { json2nameValue( $EVENT, 'Station13_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/14:.* { json2nameValue( $EVENT, 'Station14_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/15:.* { json2nameValue( $EVENT, 'Station15_', $JSONMAP ) }\
OS_D8803963182F:opensprinkler/station/16:.* { json2nameValue( $EVENT, 'Station16_', $JSONMAP ) }


evtl kann man das ja schon in ein Template packen zum Anzeigen. Ich update auch mal meinen anderen Thread dazu.

drhirn

Hi,

versuche gerade ein Device einzurichten, das mit Tasmota_IR geflashed wurde. Da werden beim Übernehmen des Templates ein paar Dinge gefragt. Und ich hab keine Ahnung, was die zu bedeuten haben bzw. was ich hier eintragen soll.

Specify the unknown parameters for tasmota_ir:
needed command to be sent like in example dec '{"protocol":"NEC","bits":32,"data":551489775}' (without '')
needed command to be sent like in example raw '0,926,844,958,832,1798,868,902,848,900,870,900,852,908,918,958,794,934,874,928,1738,934,856,1764' (without '')
needed command to be sent like in example hex '{"Protocol":"NEC","Bits":32,"Data":0x8166817E}' (without '')
needed command to be sent like in example hex '{"Protocol":"NEC","Bits":32,"Data":0x8166817E}' (without '')


Kann mir da bitte jemand weiterhelfen?

Danke!
Stefan

Beta-User

Das ist ein Henne-Ei-Problem:

Du kannst das erst wissen, wenn du die IR-Codes gesehen hast, und dazu brauchst du wiederum erst die Infos, die in den Readings des zu erstellenden Devices drin sind...

Hmm, habe jetzt mal gesucht, aber scheinbar gibt es keinen wirklichen Thread zur (Weiter-)Entwicklung des templates. Vorläufig bzw. beim ersten Mal würde ich vorschlagen, einfach die Beispiele zu kopieren und dann das Ding mal näher anzusehen. Die weitere Ausarbeitung und Anpassung dann an deine IR-Codes ist sowieso "Handarbeit" ;) .

Falls Interesse besteht, das template weiterzuentwickeln, bitte einen separaten Thread starten... (Ich habe den Tasmota zwischenzeitlich nicht mehr im Einsatz, das geht bei mir jetzt alles via LAN).
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

drhirn

Nun, mir wurden automatisch zwei Devices angelegt. Beim einen hab ich schon brauchbare Readings:


IrReceived_Bits            32
IrReceived_Data          0x12181140
IrReceived_DataLSB    0x48188802
IrReceived_Protocol     NEC_LIKE
IrReceived_Repeat      0


Ich weiß nur nicht, was needed command to be sent like in example hex und die anderen drei Sätze bedeuten sollen.

Beta-User

Na ja, vermutlich wollte ich einfach drei (nicht 4, das dürfte ein Versehen sein) Varianten zeigen, wie man Sendecodes notieren und erfolgreich versenden kann...?
Was du davon nutzt, bleibt dir überlassen; du kannst die betreffenden Zeilen am Ende auch aus dem "fertigen" Device rauslöschen.
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

drhirn

Verstehe. Gut, ich hab da jetzt einfach mal irgendwas eingetragen. Und die IR-Codes dann händisch korrigiert. Hat funktioniert.

Danke dir!