[GELÖST] Hilfe zu neuem Template dingtian Relayboard 8Chn+8Input

Begonnen von rico5588, 27 Oktober 2021, 18:29:45

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: rudolfkoenig am 29 Oktober 2021, 17:31:05
Leider :)
...wenigstens was...

Das Thema ist nicht dringlich, vorläufig baue ich halt die kaputten Befehle aus, wenn sie mir über den Weg laufen.

Vielleicht mal kurz ein Gedankenansatz, den ich bisher nicht weiterverfolgt habe: Wir hatten bei den Sprachsteuerungs-Templates an sich dasselbe Problem, das sich dort aber durch via option: gesteuerte Abfragen regeln ließ, die AttrTemplate nicht gleich auflösen konnte. Auch da ist es ein Würgaaround gewesen, bis das gestanden hat, aber es funktioniert zum Glück bis heute.
Die betreffenden Teile wären bei Interesse zu finden in speechcontrol.template, falls das irgendwas hilft :) .
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

rudolfkoenig

Ich habe den Dialog-Code fuer die Abfrage leicht angepasst und eingecheckt, mit meinem Testfall (siehe unten) scheint es zu funktionieren.

name:double
desc:Copy Test, with User Attributes
order:00
copy DEVICE DEVICE_V2
set DEVICE,DEVICE_V2 attrTemplate setAttr

name:setAttr
par:TEXTPAR;Text Parameter
par:RADIO_R1;Radio 1
par:RADIO_R2;Radio 2
option:{ RADIO_R1 }
attr DEVICE comment R1: TEXTPAR
option:{ RADIO_R2 }
attr DEVICE comment R2: TEXTPAR


Falls das nicht reichen sollte, dann brauche ich eine Beschreibung, wie ich speechcontrol_switch_type zum Kooperieren ueberrede.

Beta-User

 :) Danke Rudi.

Wird etwas brauchen, bis ich damit in Ruhe spielen kann. Melde mich dann wieder, falls wir nicht einen "Freiwilligen" gefunden haben ;D .

@rico5588: Rudis Code (auch das attrTemplate) ist nachher via update zu bekommen. Vielleicht hast du (mind.) eine Sprachsteuerung? Dann könntest du checken, ob der Dialog "gut" ist, der kommt, wenn man den betreffenden internen attrTemplate-Aufruf so erweitert  ;) :
set DEVICE,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4,DEVICE_CH5,DEVICE_CH6,DEVICE_CH7,DEVICE_CH8 attrTemplate speechcontrol_type_switch
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

rico5588

Guten Morgen,

zum Thema Sprachsteuerung müsstet ihr mich mehr abholen.
Ich gehe aber mal davonaus das ihr nicht die Alexa funktion meint sondern eine MQTT kompatible Plattform, da habe ich spontan nichts eingerichtet um das zu Testen.

Zu den Device.
In den angelegten Device wird bei readingList und setList statt des Gerätenamen (relay4974) -> "DEVNAME" angelegt und damit funktioniert das nicht.

Master
defmod MQTT2_dingtian_relay4974 MQTT2_DEVICE dingtian_relay4974
attr MQTT2_dingtian_relay4974 comment Channel 1 for MQTT2_dingtian_relay4974, see also MQTT2_dingtian_relay4974_CH2, MQTT2_dingtian_relay4974_CH3, MQTT2_dingtian_relay4974_CH4, MQTT2_dingtian_relay4974_CH5, MQTT2_dingtian_relay4974_CH6, MQTT2_dingtian_relay4974_CH7 and MQTT2_dingtian_relay4974_CH8
attr MQTT2_dingtian_relay4974 devStateIcon {my $onl = ReadingsVal($name,'LWT','offline') eq 'online'?'10px-kreis-gruen':'10px-kreis-rot';; my $light = ReadingsVal($name,'state','off');; '<a href="http://'.ReadingsVal($name,'ip','none').' "target="_blank">'.FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a>"}
attr MQTT2_dingtian_relay4974 icon on
attr MQTT2_dingtian_relay4974 model 8channel_relay_board_8di_split
attr MQTT2_dingtian_relay4974 readingList /dingtian/DEVNAME/out/lwt_availability:.* LWT\
  /dingtian/DEVNAME/out/(relay|input)[1-8]:.* {}\
  /dingtian/DEVNAME/out/r1:.* { my $state = lc $EVENT;; return if ReadingsVal($NAME,'state','unknown') eq $state;; {state=>$state} }\
  /dingtian/DEVNAME/out/i1:.* {my $state = lc $EVENT;; return if ReadingsVal($NAME,'input','unknown') eq $state;; {input=>$state}}\
  /dingtian/DEVNAME/out/ip:.* ip\
  /dingtian/DEVNAME/out/sn:.* sn\
  /dingtian/DEVNAME/out/mac:.* mac\
  /dingtian/DEVNAME/out/dicnt:.* dicnt\
  /dingtian/DEVNAME/out/relay_cnt:.* relay_cnt\
dingtian_relay4974:/dingtian/relay4974/out/lwt_availability:.* lwt_availability\
dingtian_relay4974:/dingtian/relay4974/out/r1:.* r1\
dingtian_relay4974:/dingtian/relay4974/out/r2:.* r2\
dingtian_relay4974:/dingtian/relay4974/out/r3:.* r3\
dingtian_relay4974:/dingtian/relay4974/out/r4:.* r4\
dingtian_relay4974:/dingtian/relay4974/out/r5:.* r5\
dingtian_relay4974:/dingtian/relay4974/out/r6:.* r6\
dingtian_relay4974:/dingtian/relay4974/out/r7:.* r7\
dingtian_relay4974:/dingtian/relay4974/out/r8:.* r8\
dingtian_relay4974:/dingtian/relay4974/out/i1:.* i1\
dingtian_relay4974:/dingtian/relay4974/out/i2:.* i2\
dingtian_relay4974:/dingtian/relay4974/out/i3:.* i3\
dingtian_relay4974:/dingtian/relay4974/out/i4:.* i4\
dingtian_relay4974:/dingtian/relay4974/out/i5:.* i5\
dingtian_relay4974:/dingtian/relay4974/out/i6:.* i6\
dingtian_relay4974:/dingtian/relay4974/out/i7:.* i7\
dingtian_relay4974:/dingtian/relay4974/out/i8:.* i8\
dingtian_relay4974:/dingtian/relay4974/out/relay1:.* { json2nameValue($EVENT, 'relay1_', $JSONMAP) }\
dingtian_relay4974:/dingtian/relay4974/out/relay2:.* { json2nameValue($EVENT, 'relay2_', $JSONMAP) }\
dingtian_relay4974:/dingtian/relay4974/out/relay3:.* relay3
attr MQTT2_dingtian_relay4974 room MQTT2_DEVICE
attr MQTT2_dingtian_relay4974 setExtensionsEvent 1
attr MQTT2_dingtian_relay4974 setList on:noArg /dingtian/DEVNAME/in/r1 ON\
  off:noArg /dingtian/DEVNAME/in/r1 OFF
attr MQTT2_dingtian_relay4974 webCmd :

setstate MQTT2_dingtian_relay4974 2021-10-30 10:36:16 IODev myBroker
setstate MQTT2_dingtian_relay4974 2021-10-30 10:36:57 associatedWith MQTT2_dingtian_relay4974_CH1,MQTT2_dingtian_relay4974_CH2,MQTT2_dingtian_relay4974_CH3,MQTT2_dingtian_relay4974_CH4,MQTT2_dingtian_relay4974_CH5,MQTT2_dingtian_relay4974_CH6,MQTT2_dingtian_relay4974_CH7,MQTT2_dingtian_relay4974_CH8
setstate MQTT2_dingtian_relay4974 2021-10-30 10:36:57 attrTemplateVersion 20211029
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i1 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i2 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i3 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i4 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i5 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i6 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i7 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 i8 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 lwt_availability offline
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r1 ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r2 ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r3 ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r4 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r5 ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r6 ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r7 OFF
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 r8 ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 relay1_idx 1
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 relay1_status ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 relay2_idx 2
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 relay2_status ON
setstate MQTT2_dingtian_relay4974 2021-10-30 10:37:39 relay3 {"idx":"3","sta2;;


Relay X
defmod MQTT2_dingtian_relay4974_CH4 MQTT2_DEVICE MQTT2_dingtian_relay4974_channels
attr MQTT2_dingtian_relay4974_CH4 comment Channel 4 for MQTT2_dingtian_relay4974, see also MQTT2_dingtian_relay4974, MQTT2_dingtian_relay4974_CH2, MQTT2_dingtian_relay4974_CH3, MQTT2_dingtian_relay4974_CH5, MQTT2_dingtian_relay4974_CH6, MQTT2_dingtian_relay4974_CH7 and MQTT2_dingtian_relay4974_CH8
attr MQTT2_dingtian_relay4974_CH4 icon on
attr MQTT2_dingtian_relay4974_CH4 model 8channel_relay_board_8di_split
attr MQTT2_dingtian_relay4974_CH4 readingList /dingtian/DEVNAME/out/r4:.* { my $state = lc $EVENT;; return if ReadingsVal($NAME,'state','unknown') eq $state;; {state=>$state} }\
  /dingtian/DEVNAME/out/i4:.* {my $state = lc $EVENT;; return if ReadingsVal($NAME,'input','unknown') eq $state;; {input=>$state}}
attr MQTT2_dingtian_relay4974_CH4 room MQTT2_DEVICE
attr MQTT2_dingtian_relay4974_CH4 setExtensionsEvent 1
attr MQTT2_dingtian_relay4974_CH4 setList on:noArg /dingtian/DEVNAME/in/r4 ON\
  off:noArg /dingtian/DEVNAME/in/r4 OFF
attr MQTT2_dingtian_relay4974_CH4 webCmd :

setstate MQTT2_dingtian_relay4974_CH4 2021-10-30 10:36:57 IODev myBroker
setstate MQTT2_dingtian_relay4974_CH4 2021-10-30 10:36:57 associatedWith MQTT2_dingtian_relay4974,MQTT2_dingtian_relay4974_CH1,MQTT2_dingtian_relay4974_CH2,MQTT2_dingtian_relay4974_CH3,MQTT2_dingtian_relay4974_CH5,MQTT2_dingtian_relay4974_CH6,MQTT2_dingtian_relay4974_CH7,MQTT2_dingtian_relay4974_CH8
setstate MQTT2_dingtian_relay4974_CH4 2021-10-30 10:36:57 attrTemplateVersion 20211029



Wünsche schonmal einen Sonnigen start in den Tag. :)
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS414
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

Beta-User

#19
Mit Sprachsteuerung ist irgendeine allgemeine gemeint, alexa sollte es tun. Falls dir bereits ein Dialogfeld mit der "alexaname"-Anfrage angezeigt wurde, sind die Testvoraussetzungen erfüllt.

vor "par" ist ein zeilenumbruch verloren gegangen, habe ich leider übersehen. Daher DEVNAME. Am einfachsten mal wieder von vorne starten.
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

Beta-User

@rico5588: gibt schon wieder ein update im svn, die Sprachsteuerungsfrage scheint auch geklärt zu sein.
Zum direkt testen:

{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
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

rico5588

Ist ja der Hammer ;)

in der Testumgebung hats nu mehr oder weniger gleich funktioniert.
Musste ein paar mal neustarten und scheinbar kommt über die normal Updateroutine noch eine frühere Version.
Also 1 Update durchführen, dann mit
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
+ Neustart -> dann gehts gleich.
Habs jetzt im Live eingespielt und es werden zu allen 8 Chn. eine Abfrage angeboten wo man den Alexaname eingeben kann.
Danach noch Alexa neu geladen und die gute hört aufs Wort ( 8)).

An dieser stelle denke ich, ist das Thema mit dem Template beendet.
Es funktioniert perfekt.

Vielen Dank fürs bauen und die schnelle reaktion, etc. Für mich wäre es doch ein ziemliches gebastel geworden (wenn es überhaupt funktioniert hätte :-[).

Wenn ich hierzu nochmal helfen kann - gern.

Rico
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS414
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

Beta-User

Danke auch an Rudi für das Fixen der diversen Kleinigkeiten rund um diese internen Mehrfachaufrufe!

@rico5588: Danke für die freundliche Rückmeldung!

Du hast ja auch so ziemlich alles geliefert, was man benötigt, um sowas zu basteln, es fehlten eigentlich nur die MQTT-Verkehrsdaten "in Echt" und die dann nachgelieferten Infos zum Verhalten der Inputs.
Da du ein "funktioniert" zurückgemeldet hast, gehe ich mal davon aus, dass die firmware erhaltene und abgearbeitete Befehle auch ordentlich bestätigt.

Zitat von: rico5588 am 30 Oktober 2021, 17:12:22
Für mich wäre es doch ein ziemliches gebastel geworden (wenn es überhaupt funktioniert hätte :-[ ).
Nachdem ich mir die Infos zur MQTT-Schnittstelle angesehen hatte, war (leider) klar, dass das doch etwas spezieller ist als ursprünglich angenommen. Sowas erfordert dann "etwas Übung" - und genau dazu sind ja die attrTemplate (auch) da: (beispielhafte) Lösungen präsentieren auch für "spezielle" Fälle...

Grüße und weiter viel Freude damit,

Beta-User
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