[gelöst] set-Befehl im HTTPMOD-Device

Begonnen von TomLee, 11 Februar 2021, 13:35:56

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

ZitatKonfiguration zum Definieren eines Set-Befehls und zum Senden von Daten an ein Gerät

Wenn eine Set-Option durch Attribute definiert ist, verwendet das Modul den dem Befehl set angegebenen Wert und übersetzt ihn in eine HTTP-Anfrage, die den Wert an das Gerät sendet.

Hab mich bisher nur wenig mit HTTPMOD beschäftigt, wenn ich an das Gerät aber gar nichts senden möchte, nur einen setter definieren der mir den angegeben Wert in ein Reading schreibt, ist das auch möglich ?

Klar ist das ich mit setreading auch zum Ziel komme, ich hätt aber gerne nach Möglichkeit einen setter.

Mit einfach nur der Angabe des Attributs set01Name klappts schonmal nicht
attr <devicename> set01Name number

Gruß

Thomas

DeeSPe

Hmmm, bei mir funktioniert das genau so.
Im benannten Attribut den Namen hinterlegen und dann ist der Setter da. Beim Betätigen des selben wird ein entsprechendes Event gefeuert.

Code (Attribut) Auswählen
attr h set01Name number
set h number 12
Code (Event monitor) Auswählen
2021-02-11 13:58:33 HTTPMOD h number 12

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

TomLee

#2
Schon, ist bei mir auch so, aber ich will ein Reading number erhalten mit dem angegebenen Wert, das wird nicht erzeugt.

edit:

ein zusätzliches notify das mit setreading den Wert setzt würd ich gerne vermeiden

DeeSPe

Bin auch nicht so der HTTPMOD Profi, aber auf das Event könnte man mit einem notify reagieren und entsprechenden Code ausführen.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

TomLee

Ja ist klar, war gerade oben nochmal am editieren, trotzdem Danke.

StefanStrobel

Probier mal zusätzlich


attr h set01Temp 1


Gruss
   Stefan

DeeSPe

Super Info! Damit funktioniert es tatsächlich!
Schade dass man das nicht in der commandref findet.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

TomLee

Danke.




Hat mich aber dem Verständnis von notify etwas weiter gebracht, war erst der Meinung mehrere notify zu brauchen (für mehrere Devices), mit einem hätt ich mich anfreunden können.

Das kann ich mir jetzt ja sparen:

(hmod_sq_1|hmod_sq_2|hmod_sq_3|hmod_sq_4|hmod_sq_5|hmod_sq_6|hmod_sq_7|hmod_sq_8|hmod_sq_9):(number|willi).* setreading $NAME $EVTPART0 $EVTPART1

DeeSPe

Zitat von: TomLee am 11 Februar 2021, 21:34:05
Danke.




Hat mich aber dem Verständnis von notify etwas weiter gebracht, war erst der Meinung mehrere notify zu brauchen (für mehrere Devices), mit einem hätt ich mich anfreunden können.

Das kann ich mir jetzt ja sparen:

(hmod_sq_1|hmod_sq_2|hmod_sq_3|hmod_sq_4|hmod_sq_5|hmod_sq_6|hmod_sq_7|hmod_sq_8|hmod_sq_9):(number|willi).* setreading $NAME $EVTPART0 $EVTPART1

Ich glaube so wäre es auch kürzer gegangen:
(hmod_sq_[1-9]):(number|willi).* setreading $NAME $EVTPART0 $EVTPART1
ist aber nun überflüssig. ;)

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

TomLee

Nee, geht nicht.

Da stehen in Wirklichkeit aber auch keine Zahlen hinter hmod_sq_ sondern beliebige Namen.

Hab mal zwei Devices umbenannt in hmod_sq_1 und hmod_sq_2:

{ notifyRegexpCheck('(hmod_sq_[1-9]):(number|willi).*') }

ergibt auch:

(hmod_sq_[1-9]):(number: no match (ignored)
willi).*: no match (ignored)

StefanStrobel

set01Temp ist noch nicht in der Commandref, weil ich das Feature erst vor kurzem nebenbei eingebaut habe und das Attribut eigentlich noch umbenennen wollte. Temp passt nicht wirklich. Vermutlich wäre set01Local passender.
Ich hoffe das ist kein Problem für Euch wenn ich das beim nächsten Update nochmal ändere ...

Gruss
   Stefan


DeeSPe

Zitat von: TomLee am 11 Februar 2021, 23:43:39
Nee, geht nicht.

Ach stimmt, im Namen selbst funktioniert kein RegEx.

Zitat von: StefanStrobel am 12 Februar 2021, 07:30:49
set01Temp ist noch nicht in der Commandref, weil ich das Feature erst vor kurzem nebenbei eingebaut habe und das Attribut eigentlich noch umbenennen wollte. Temp passt nicht wirklich. Vermutlich wäre set01Local passender.
Ich hoffe das ist kein Problem für Euch wenn ich das beim nächsten Update nochmal ändere ...

Ahhh, deshalb also. ;)
Solange es dokumentiert wird sollte das kein Problem darstellen.
Es gibt für diesen Fall, soweit ich mich recht erinnere, auch etwas in FHEM um als Entwickler Attributnamen im Modul zu konvertieren so dass es der User nicht selbst machen muss.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

Zitat von: DeeSPe am 12 Februar 2021, 10:22:51
Es gibt für diesen Fall, soweit ich mich recht erinnere, auch etwas in FHEM um als Entwickler Attributnamen im Modul zu konvertieren so dass es der User nicht selbst machen muss.

Habe es gefunden.
In dieser Form als letztes in die "sub xxx_Initialize($)":
$hash->{AttrRenameMap} = { "set01Temp" => "set01Local" };
$hash->{AttrRenameMap} = { "set02Temp" => "set02Local" };
$hash->{AttrRenameMap} = { "set03Temp" => "set03Local" };


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

TomLee

#13
Steh etwas auf dem Schlauch, aber auch noch nicht näher mit beschäftigt, seit update und dem neuen Attribut setxxLocal (auf das ich alle Devices umgestellt habe) hab ich immer noch diese Meldung auf der "Hauptseite" von FHEM:

1
Messages collected while initializing FHEM:configfile: hmod_bla1: unknown attribute set01Temp. Type 'attr hmod_bla1 ?' for a detailed list.
hmod_bla1: unknown attribute set02Temp. Type 'attr hmod_bla1 ?' for a detailed list.
hmod_bla2: unknown attribute set01Temp. Type 'attr hmod_bla2 ?' for a detailed list.
hmod_bla2: unknown attribute set02Temp. Type 'attr hmod_bla2 ?' for a detailed list.
hmod_bla3: unknown attribute set01Temp. Type 'attr hmod_bla3 ?' for a detailed list.
hmod_bla3: unknown attribute set02Temp. Type 'attr hmod_bla3 ?' for a detailed list.
hmod_bla4: unknown attribute set01Temp. Type 'attr hmod_bla4 ?' for a detailed list.
hmod_bla4: unknown attribute set02Temp. Type 'attr hmod_bla4 ?' for a detailed list.
hmod_bla5: unknown attribute set01Temp. Type 'attr hmod_bla5 ?' for a detailed list.
hmod_bla5: unknown attribute set02Temp. Type 'attr hmod_bla5 ?' for a detailed list.
hmod_bla6: unknown attribute set01Temp. Type 'attr hmod_bla6 ?' for a detailed list.
hmod_bla6: unknown attribute set02Temp. Type 'attr hmod_bla6 ?' for a detailed list.
hmod_bla7: unknown attribute set01Temp. Type 'attr hmod_bla7 ?' for a detailed list.
hmod_bla7: unknown attribute set02Temp. Type 'attr hmod_bla7 ?' for a detailed list.
hmod_bla8: unknown attribute set01Temp. Type 'attr hmod_bla8 ?' for a detailed list.
hmod_bla8: unknown attribute set02Temp. Type 'attr hmod_bla8 ?' for a detailed list.
hmod_bla9: unknown attribute set01Temp. Type 'attr hmod_bla9 ?' for a detailed list.
hmod_bla9: unknown attribute set02Temp. Type 'attr hmod_bla9 ?' for a detailed list.


Es gibt kein vergebenes Attribut setxxTemp mehr in den Geräten, die fhem.cfg hab ich durchsucht mit keinem Ergebnis, Neustart hab ich auch schon gemacht.

Was kanns noch sein ?

StefanStrobel

Seltsam.
Was siehst Du denn im Log wenn Du Fhem startest?

Gruss
   Stefan