Hallo,
ich möchte mein Shelly über http konfigurieren.
Im Modul funktioniert das Set, über die Befehlszeile oder notify gibt
set shedule_Rollo_Schlafzimmer Urlaub
keine Reaktion. :(
Internals:
BUSY 0
DEF none 0
FUUID 608d804b-f33f-ff70-8483-0d3513f80f8a4dec
Interval 0
MainURL
ModuleVersion 4.1.08 - 1.4.2021
NAME shedule_Rollo_Schlafzimmer
NOTIFYDEV global
NR 463
NTFY_ORDER 50-shedule_Rollo_Schlafzimmer
STATE stop
TYPE HTTPMOD
value 0
HttpUtils:
NAME
addr http://ip:80
auth 1
buf
code 200
compress 1
conn
data
displayurl http://user:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open
header
host ip
httpheader HTTP/1.1 200 OK
Server: Mongoose/6.18
Connection: close
Content-Type: application/json
Content-Length: 557
httpversion 1.0
hu_blocking 0
hu_filecount 1
hu_port 80
hu_portSfx
ignoreredirects 1
loglevel 4
path /settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open
protocol http
pwd pw
redirects 0
timeout 2
url http://user:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open
user user
sslargs:
QUEUE:
READINGS:
2021-05-04 16:31:48 btn_reverse 0
2021-05-04 16:31:48 button_type momentary
2021-05-04 16:31:48 default_state stop
2021-05-04 16:31:48 input_mode openclose
2021-05-04 16:31:48 is_valid 1
2021-05-04 16:31:48 maxtime 20
2021-05-04 16:31:48 maxtime_close 20
2021-05-04 16:31:48 maxtime_open 21
2021-05-04 16:31:48 obstacle_action stop
2021-05-04 16:31:48 obstacle_delay 1
2021-05-04 16:31:48 obstacle_mode disabled
2021-05-04 16:31:48 obstacle_power 200
2021-05-04 16:31:48 off_power 2
2021-05-04 16:31:48 positioning 1
2021-05-04 16:31:48 power 0
2021-05-04 16:31:48 safety_action stop
2021-05-04 16:31:48 safety_allowed_on_trigger none
2021-05-04 16:31:48 safety_mode while_opening
2021-05-04 16:31:48 safety_switch 0
2021-05-04 16:31:48 schedule 1
2021-05-04 16:31:48 schedule_rules_0 0800-0123456-open
2021-05-04 16:31:48 schedule_rules_1 0019ass-0123456-close
2021-05-01 18:51:04 schedule_rules_2 0800-56-open
2021-05-04 16:31:48 state stop
2021-05-04 16:31:48 swap 0
2021-05-04 16:31:48 swap_inputs 0
REQUEST:
context set
data
header
ignoreredirects 0
method
num 01
retryCount 0
type set01
url http://user:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open
value 0
defptr:
readingBase:
btn_reverse get
button_type get
default_state get
input_mode get
is_valid get
maxtime get
maxtime_close get
maxtime_open get
obstacle_action get
obstacle_delay get
obstacle_mode get
obstacle_power get
off_power get
positioning get
power get
safety_action get
safety_allowed_on_trigger get
safety_mode get
safety_switch get
schedule get
schedule_rules_0 get
schedule_rules_1 get
state get
swap get
swap_inputs get
readingNum:
btn_reverse 01
button_type 01
default_state 01
input_mode 01
is_valid 01
maxtime 01
maxtime_close 01
maxtime_open 01
obstacle_action 01
obstacle_delay 01
obstacle_mode 01
obstacle_power 01
off_power 01
positioning 01
power 01
safety_action 01
safety_allowed_on_trigger 01
safety_mode 01
safety_switch 01
schedule 01
schedule_rules_0 01
schedule_rules_1 01
state 01
swap 01
swap_inputs 01
readingOutdated:
requestReadings:
get01:
btn_reverse get 01
button_type get 01
default_state get 01
input_mode get 01
is_valid get 01
maxtime get 01
maxtime_close get 01
maxtime_open get 01
obstacle_action get 01
obstacle_delay get 01
obstacle_mode get 01
obstacle_power get 01
off_power get 01
positioning get 01
power get 01
safety_action get 01
safety_allowed_on_trigger get 01
safety_mode get 01
safety_switch get 01
schedule get 01
schedule_rules_0 get 01
schedule_rules_1 get 01
state get 01
swap get 01
swap_inputs get 01
Attributes:
extractAllJSON 1
get01Name Shedule
get01URL http://user:pw@ip/settings/roller/0
room Technik->Rolladen
set01Name Wochentag
set01NoArg on
set01URL http://user:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open
set02Name Urlaub
set02NoArg on
set02URL http://user:pw@ip/settings/roller/0?schedule_rules=0800-0123456-open,0019ass-0123456-close
Funktioniert HTTPMOD dies bezgl. anders, oder muss ich noch etwas konfigurieren?
Hallo frober,
setz doch mal verbose für Deine Device auf 5 und poste einen Auszug aus dem Log, in dem man den set-Befehl und die weitere Verarbeitung sieht.
Zusätzlich wäre die Konfiguration hilfreich.
Gruss
Stefan
Zitat von: StefanStrobel am 06 Mai 2021, 17:13:01
Hallo frober,
setz doch mal verbose für Deine Device auf 5 und poste einen Auszug aus dem Log, in dem man den set-Befehl und die weitere Verarbeitung sieht.
Zusätzlich wäre die Konfiguration hilfreich.
Gruss
Stefan
Hallo Stefan,
ich muss meine Aussage revidieren, das Set funktioniert.
Die Readings werden auf einmal nicht mehr aktualisiert.
Das hat mich getäuscht, da die Readings, wenn ich im Modul das set benutzt habe noch aktualisiert wurden.Dazu kam, dass ich im Shelly einen Browserrefresh brauche um die geänderten Daten zu sehen. Ein umschalten zwischen den Funktionen reicht nicht.
Nun werden die Readings überhaupt nicht mehr aktualisiert, habe schon einen reboot von Fhem gemacht.Es funktioniert soweit alles, die readings ändern sich nur über get shedule, das hat mich verwirrt.
Gibt es hier keine Rückmeldung beim set, so wie in den anderen Modulen?Die def als RAW:
defmod shedule_Rollo_Schlafzimmer HTTPMOD none 0
attr shedule_Rollo_Schlafzimmer extractAllJSON 1
attr shedule_Rollo_Schlafzimmer get01Name Shedule
attr shedule_Rollo_Schlafzimmer get01URL http://usr:pw@ip/settings/roller/0
attr shedule_Rollo_Schlafzimmer room Technik->Rolladen
attr shedule_Rollo_Schlafzimmer set01Name Wochentag
attr shedule_Rollo_Schlafzimmer set01NoArg 1
attr shedule_Rollo_Schlafzimmer set01URL http://usr:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open
attr shedule_Rollo_Schlafzimmer set02Name Urlaub
attr shedule_Rollo_Schlafzimmer set02NoArg 1
attr shedule_Rollo_Schlafzimmer set02URL http://usr:pw@ip/settings/roller/0?schedule_rules=0800-0123456-open,0019ass-0123456-close
attr shedule_Rollo_Schlafzimmer verbose 5
Verbose5:
2021.05.06 17:29:34 5: shedule_Rollo_Schlafzimmer: set called with Wochentag
2021.05.06 17:29:34 5: shedule_Rollo_Schlafzimmer: set found option Wochentag in attribute set01Name
2021.05.06 17:29:34 4: shedule_Rollo_Schlafzimmer: set will now set Wochentag
2021.05.06 17:29:34 5: shedule_Rollo_Schlafzimmer: AddToQueue adds type set01 to URL http://usr:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open, no data, no headers, retry 0, initial queue len: 0
2021.05.06 17:29:34 5: shedule_Rollo_Schlafzimmer: HandleSendQueue called from AddToSendQueue, qlen = 1
2021.05.06 17:29:34 4: shedule_Rollo_Schlafzimmer: HandleSendQueue sends set01 with timeout 2 to http://usr:pw@ip/settings/roller/0?schedule_rules=0019bsr-01234-open,0019ass-0123456-close,0800-56-open, No Data, No Header
2021.05.06 17:29:36 5: shedule_Rollo_Schlafzimmer: ReadCallback called from __ANON__
2021.05.06 17:29:36 4: shedule_Rollo_Schlafzimmer: Read callback: request type was set01 retry 0,
header: HTTP/1.1 200 OK
Server: Mongoose/6.18
Connection: close
Content-Type: application/json
Content-Length: 557, body length 557
2021.05.06 17:29:36 5: shedule_Rollo_Schlafzimmer: Read callback: body
{"maxtime":20.00,"maxtime_open":21.00,"maxtime_close":20.00,"default_state":"stop","swap":false,"swap_inputs":false,"input_mode":"openclose","button_type":"momentary","btn_reverse":0,"state":"stop","power":0.00,"is_valid":true,"safety_switch":false,"schedule":true,"schedule_rules":["0019bsr-01234-open","0019ass-0123456-close","0800-56-open"],"obstacle_mode":"disabled","obstacle_action":"stop","obstacle_power":200,"obstacle_delay":1,"safety_mode":"while_opening","safety_action":"stop","safety_allowed_on_trigger":"none","off_power":2,"positioning":true}
2021.05.06 17:29:36 4: shedule_Rollo_Schlafzimmer: BodyDecode is not decoding the response body (charset not found, bodyDecode defaults to none)
2021.05.06 17:29:36 4: shedule_Rollo_Schlafzimmer: extracted JSON values to internal
2021.05.06 17:29:36 5: shedule_Rollo_Schlafzimmer: GetCookies is looking for Cookies
2021.05.06 17:29:36 5: shedule_Rollo_Schlafzimmer: ExtractSid called, context set, num 01
2021.05.06 17:29:36 4: shedule_Rollo_Schlafzimmer: checking for redirects, code=200, ignore=0
2021.05.06 17:29:36 4: shedule_Rollo_Schlafzimmer: no redirects to handle
2021.05.06 17:29:36 5: shedule_Rollo_Schlafzimmer: Read callback sets LAST_REQUEST to set01
2021.05.06 17:29:36 5: shedule_Rollo_Schlafzimmer: CheckAuth decided no authentication required
aktuelle readings nach dem Verbose5-Test:
setstate shedule_Rollo_Schlafzimmer stop
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 btn_reverse 0
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 button_type momentary
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 default_state stop
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 input_mode openclose
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 is_valid 1
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 maxtime 20
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 maxtime_close 20
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 maxtime_open 21
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 obstacle_action stop
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 obstacle_delay 1
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 obstacle_mode disabled
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 obstacle_power 200
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 off_power 2
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 positioning 1
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 power 0
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 safety_action stop
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 safety_allowed_on_trigger none
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 safety_mode while_opening
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 safety_switch 0
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 schedule 1
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 schedule_rules_0 0800-0123456-open
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 schedule_rules_1 0019ass-0123456-close
setstate shedule_Rollo_Schlafzimmer 2021-05-01 18:51:04 schedule_rules_2 0800-56-open
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 state stop
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 swap 0
setstate shedule_Rollo_Schlafzimmer 2021-05-04 16:31:48 swap_inputs 0
Jetzt habe ich noch alle Readings gelöscht, das set ausgeführt, es werden keine neuen Readings mehr angelegt. :o
Nachtrag: Ein Reboot des Raspi hat auch nicht geholfen, es gibt keine Readings mehr im Modul.
Danke und Grüße
Bernd
Hallo Bernd,
Bei HTTPMOD definierst Du ja für einen get- oder set-Befehl, welche HTTP-Requests an einen Web-Server gesendet werden.
Ob bei einem set-Befehl tatsächlich ein Wert gesetzt wird, der einem Reading entspricht, ist nicht sicher.
Oft wird ein Request vom Server auch so beantwortet, dass der neue Wert gar nicht in der Response steht.
Um den neu gesetzten Wert zu lesen / zu verifizieren, muss HTTPMOD dann einen weiteren Request senden, der eventuell in einem get-Befehl definiert ist oder auch nicht.
Da das alles im Ermessen des Anwenders ist, ist auch die Zuordnung zwischen einem set-Befehl und einem darauf möglicherweise sinnvollen get-Befehl Definitionssache.
Das Attribut, das Du suchst ist vermutlich
(get|set)[0-9]*FollowGet
allows to chain a get command after another set or get command.
If for example you want to set a new required temerature with a set 'TargetTemp' command and this set command changes the temperature with a series of HTTP requests in your heating system, then you can automaticaly do a get 'TargetTemp' to read out the new value from your heating.
The value of this attribute must match a defined get command name.
Gruss
Stefan
Zitat von: StefanStrobel am 07 Mai 2021, 07:48:56
Hallo Bernd,
Bei HTTPMOD definierst Du ja für einen get- oder set-Befehl, welche HTTP-Requests an einen Web-Server gesendet werden.
Ob bei einem set-Befehl tatsächlich ein Wert gesetzt wird, der einem Reading entspricht, ist nicht sicher.
Oft wird ein Request vom Server auch so beantwortet, dass der neue Wert gar nicht in der Response steht.
Um den neu gesetzten Wert zu lesen / zu verifizieren, muss HTTPMOD dann einen weiteren Request senden, der eventuell in einem get-Befehl definiert ist oder auch nicht.
Da das alles im Ermessen des Anwenders ist, ist auch die Zuordnung zwischen einem set-Befehl und einem darauf möglicherweise sinnvollen get-Befehl Definitionssache.
Das Attribut, das Du suchst ist vermutlich
(get|set)[0-9]*FollowGet
allows to chain a get command after another set or get command.
If for example you want to set a new required temerature with a set 'TargetTemp' command and this set command changes the temperature with a series of HTTP requests in your heating system, then you can automaticaly do a get 'TargetTemp' to read out the new value from your heating.
The value of this attribute must match a defined get command name.
Gruss
Stefan
Hallo Stefan,
danke, das werde ich ausprobieren.
Den Thread setze ich schonmal auf gelöst.
P.S. im Browser bekomme ich die geänderte Konfig. als requests.
Grüße Bernd
Durch deinen Wink, habe ich selbst noch einmal nachgelesen (Englisch war nicht mein Lieblingsfach) und hab folgendes gefunden:
Zitatset[0-9]*ParseResponse
defines that the HTTP response to the set will be parsed as if it was the response to a get command.
Damit funktioniert es in einem Schritt :)