mqtt2.template: bugs, Fragen, Anregungen

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

Vorheriges Thema - Nächstes Thema

Beta-User

Ist das die letzte Version, mit der du getestet hattest? (Das $JSONMAP sollte eigentlich raus sein; ist also an sich ok, wenn du das gelöscht hast, der Rest (oder alles?) ist dann aber auch nicht durchgelaufen).
Die letzte Fassung mappt auch wieder was anderes auf state (Diskussion/Anregung war in dem shelly-mqtt2-Thread).

Für ASC hatte ich da nachgefragt, wie es am "geschicktesten" ist, habe aber selbst "nur" CUL_HM's => Testen geht nicht. Vermutlich ginge auch pos, aber dann muß man händisch was an den Attributen für ASC drehen; daher der Weg, das (weitgehend?) direkt "ASC-konform" zu machen; pct scheint bei FHEM allg. verbreiteter zu sein, auch ROLLO hat das übernommen, und in MQTT kann man es ja auch bequem umbiegen :) .
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

torte

hi,

jo läuft jetzt, kaum macht man es richtig....

gerade nochmal update gezogen. Template passt so  :D
ob "state" oder "pct" ist mir wuppe  8)

Gruß
Torte

Intruder1956

Hallo,
kann es sein, das das Template L_01_zigbee2mqtt_bridge einen Fehler hat ?
z.b. folgende Zeile

zigbee2mqtt/bridge/log:.*\"type\".\"devices\".\"message\".* devices\

Ich frage deshalb, weil nach dem


Zigbee2mqtt/bridge/log:.*\
im Editor  fhem.cfg  oder beim editieren von attr readinglist, alles in grün angezeigt wird.

Was fehlt oder ist zu viel ??

Danke
Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Beta-User

Wie OdfFhem hier schon geschrieben hat:
Das scheint ein Interpretationsproblem des Editors zu sein.

Da ich fhem.cfg nicht nutze (configDB), kann ich den optischen Effekt zwar in der Editieransicht des Attributs sehen, aber sonst keine Seiteneffekte feststellen. Hast du ein über den optischen Effekt hinausgehendes Problem?

Bitte ggf. einen separaten Thread im zu codemirror (=Editor) passenden Forenbereich aufmachen, gerne dazu hierher verweisen.

(Allg. würde ich eh' davon abraten, die cfg direkt zu editieren, ob jetzt über den integrierten Editor oder extern. Ich verwende für die entsprechenden Aufgaben den RAW-Editor).

Im anderen Thread brauchst du nichts zu löschen (vielleicht die betreffende Frage), ich wollte die Diskussion nur nicht dort weiterführen, und ohne deine Frage müßte man dann wieder die Antworten auch löschen... So dramatisch ist es nun auch nicht, dass da was steht, was ausweisliche der Einleitung da nicht hingehört ;) .
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

Intruder1956

Zitat von: Beta-User am 20 Januar 2019, 15:07:16
Hast du ein über den optischen Effekt hinausgehendes Problem?

Entschuldige bitte, das ich überhaupt gefragt habe, Ich habe kein Problem mit irgend welchen Effekten.
Bin nur gerade dabei mir ein neues Fhem in einer VM mit DBLog aufzubauen und evtl. Fehler gleich auszuschliessen.

Ich bin davon ausgegangen, wenn der "codemirror" es so darstellt, dass evtl. ein z.b. Hochkomma, Klammer, Punkt oder Semikolon fehlt oder sogar über ist und ich es woanders verwerten könnte  ;)
Aber wenn die Zeile so OK ist, kann auch ich damit umgehen und belasse es wie es ist

Vielen Dank
Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

deimos84

Hallo zusammen,

ich nutze nun seit ein paar Wochen shellybulbs und habe sie bisher als dummy iVm einem Notify eingerichtet, da ich nur so den kompletten Funktionsumfang realisieren konnte. Heute habe ich ein MQTT2_DEVICE mit dem entsprechenden Template erstellt, da ich einerseits auf die Notifies verzichten und andererseits von den MQTT-Subscriptions profitieren möchte.

Die im Template enthaltenen Funktionen (on/off, rgb, brightness und temp) funktionieren zwar. Ich nutze aber auch die eingebauten Effekte (effect) und den Moduswechsel (mode)

Nun stehe ich vor folgender Problemstellung:

Ich habe die Setlist mit den entsprechenden Befehlen erweitert

   mode:white,color shellies/shellybulb-123456/color/0/set {"ison":"true","mode":"$EVTPART1","brightness":"100","gain":"100"}
  effect:0,1,2,3,4,5 shellies/shellybulb-123456/color/0/set {"ison":"true","mode":"white","effect":"$EVTPART1"}


Das funktioniert an sich auch. Ich muss aber beim Wechsel des mode mindestens auch einen Wert für brightness übergeben, damit die bulb den json string annimmt. Ebenso muss ich beim effect auch den mode mit angeben.

Leider habe ich bisher nicht hinbekommen, die Zusatzwerte dynamisch zu gestalten bzw die Werte aus den vorhandenen Readings zu beziehen. Wenn ich nun also den mode wechsle, wird die brightness immer auf 100% gestellt. Und beim Wechsel des effect wird der mode immer auf white gestellt. Wenn er vorher auf color war, wird nach Beendigung des Effekts das Licht weiß.

Gibts es eine Möglichkeit dieses Problem im MQTT2_DEVICE zu lösen oder muss ich auch weiterhin auf Notifies setzen?

Vielen Dank im Voraus!

deimos84

Beta-User

Zitat von: deimos84 am 26 Januar 2019, 20:51:29
Gibts es eine Möglichkeit dieses Problem im MQTT2_DEVICE zu lösen oder muss ich auch weiterhin auf Notifies setzen?
Das sollte gehen, indem du die Perl-Variante in der setList nimmst:
the perl expression must return a string containing the topic and the message separated by a space.
Leider habe ich grade kein Beispiel zur Hand (es könnte was in den ersten Varianten mit MQTT2 in dem Sidoh-Bridge stehen)
effect:0,1,2,3,4,5 {my $brightness = readingsNum(...); return "shellies/shellybulb-123456/color/0/set {\"ison\":\"true\",\"brightness\":$brightness... $EVTPART1\"}"}
Oder hinten mit toJSON (damit sollte der betr. Teil des Sidoh-Brige Threads es zu finden sein).

Wäre klasse, wenn du da ggf. Ergänzungen für's Wiki liefern könntest, die cref ist an der Stelle m.E. noch etwas arg kurz.
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

deimos84

#22
Vielen Danke für die echt schnelle Antwort!

Zitat von: Beta-User am 27 Januar 2019, 08:32:05

effect:0,1,2,3,4,5 {my $brightness = readingsNum(...); return "shellies/shellybulb-123456/color/0/set {\"ison\":\"true\",\"brightness\":$brightness... $EVTPART1\"}"}


Auf die Art habe ich es bereits versucht. Das resultiert aber immer in Fehlermeldungen. Vielleicht habe ich auch nur etwas übersehen.

mode:white,color {my $brightness = readingsNum($NAME,"brightness",99); return "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":".$EVTPART1.",\"brightness\":".$brightness .",\"gain\":".$brightness }

==> Global symbol "$NAME" requires explicit package name (did you forget to declare "my $NAME"?) at (eval 24134) line 1.

mode:white,color {my $brightness = readingsNum(shelly_bulb_WoZ,"brightness",99); return "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":".$EVTPART1.",\"brightness\":".$brightness .",\"gain\":".$brightness }

==> Bareword "shelly_bulb_WoZ" not allowed while "strict subs" in use at (eval 23725) line 1.

Bezüglich der Sidoh-Bridge habe ich bisher nichts passendes gefunden.

EDIT:
Wenn ich $NAME zuvor noch definiere

mode:white,color {my $NAME= "shelly_bulb_WoZ"; my $brightness=readingsVal($NAME,"brightness",99); "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":".$EVTPART1.",\"brightness\":".$brightness.",\"gain\":".$brightness }

erscheint im Log die Fehlermeldung "Undefined subroutine &main::readingsVal called at (eval 24637) line 1"

Beta-User

Also entweder auch den Device-Namen in Anführungszeichen packen in ReadingsNum (=>bareword etc.; das sind aber (Perl-) Grundlagen...), oder evtl. mal $name (kleingeschrieben) versuchen (wäre mein Favorit).
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

deimos84

Zitat von: Beta-User am 27 Januar 2019, 10:35:47
Also entweder auch den Device-Namen in Anführungszeichen packen in ReadingsNum (=>bareword etc.; das sind aber (Perl-) Grundlagen...), ...

Die habe ich tatsächlich vergessen. Ich bin aber auch ein Depp. Hilft aber letztendlich auch nichts. Dann erkennt er readingsVal nicht.

Zitat von: Beta-User am 27 Januar 2019, 10:35:47
..., oder evtl. mal $name (kleingeschrieben) versuchen (wäre mein Favorit).

Beide Schreibweisen (groß und klein) ergeben die gleiche Fehlermeldung.

Beta-User

Sorry, habe bei der Schreibweise einen Fehler reingebaut: ReadingsVal() schreibt sich groß...

Nimm aber besser ReadingsNum().
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

deimos84

#26
mode:white,color {my $brightness=ReadingsNum("shelly_bulb_WoZ","brightness",99); "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":\"".$EVTPART1."\",\"brightness\":".$brightness.",\"gain\":".$brightness."}" }

Damit funktioniert es. Vielen Dank. Also alles wieder mal nur Schusselfehler meinerseits. Na sauber... Ist ja nicht so, als hätte ich das schon alles funktional im Notify gehabt.

anbei die bisherige SetList:

off:noArg shellies/shellybulb-123456/color/0/command off
  on:noArg shellies/shellybulb-123456/color/0/command on
  brightness:colorpicker,BRI,0,1,100 shellies/shellybulb-3CC394/color/0/set {"ison":"true","$EVTPART0":"$EVTPART1","gain":"$EVTPART1"}
  temp:colorpicker,CT,3000,10,6500 shellies/shellybulb-3CC394/color/0/set {"ison":"true","mode":"white","$EVTPART0":"$EVTPART1"}
  rgb:colorpicker,RGB {$EVTPART1=~/(..)(..)(..)/; "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":\"color\",\"red\":".hex($1).",\"green\":".hex($2)."\"blue\":".hex($3) }
  mode:white,color {my $brightness=ReadingsNum("shelly_bulb_WoZ","brightness",99); "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":\"".$EVTPART1."\",\"brightness\":".$brightness.",\"gain\":".$brightness."}" }
  effect:0,1,2,3,4,5,6 {my $mode=ReadingsVal("shelly_bulb_WoZ","mode","white"); "shellies/shellybulb-123456/color/0/set {\"ison\":true,\"mode\":\"".$mode."\",\"effect\":".$EVTPART1."}" }



Danke nochmal für die unkomplizierte Hilfe!

Christian Uhlmann

Hallo zusammen,

gibt es schon ein Template, welches für den Sonoff POW genutzt werden kann?
Wenn nein, was wird benötigt, damit eins erstellt werden kann? Welches Template passt am besten, wenn man erst mal nur schalten möchte und den Schaltzustand anzeigen lassen möchte?


Danke und Grüße

Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota

TomLee

Schalten und Zustand sollte mit A_01_tasmota_basic möglich sein.

Christian Uhlmann

Hi,

ja, vielen Dank. Hat nun geklappt. Ein . (Punkt) im Topic mag das System nicht.
Aber damit kann ich leben


LG Christian
Host: Debian Buster als VM / XCP-NG
Gateways: DuoFern Stick, CUL433 Revolt, CUL MAX, HMLan, HM-USB 2, LaCrosseGateway
Devices: 12x Rademacher Rollos, 6x TX 29 DT-HT, 10x HM-CC-RT-DN, 14x MAX Fensterkontakte, Diverse HM Aktoren für Licht, Klingel, Gong, Eingangstür, ESPEasy, Sonoff mit Tasmota