(hm) Steckdose nach Betätigung für n Sekunden blockieren

Begonnen von pula, 23 August 2015, 20:40:16

Vorheriges Thema - Nächstes Thema

pula

Hallo,

mal wieder so eine Anfängerfrage...
Habe mir mit
define wz_kino CUL_HM 2382E0
attr wz_kino IODev HMLAN1
attr wz_kino autoReadReg 1
attr wz_kino event-min-interval 30
attr wz_kino expert 2_full
attr wz_kino firmware 1.12
attr wz_kino icon ge_wht_steckdose
attr wz_kino model HM-LC-SW1-PL2
attr wz_kino peerIDs 00000000,
attr wz_kino room wz
attr wz_kino serialNr bla
attr wz_kino subType switch
attr wz_kino webCmd statusRequest:toggle:on:off


eine HM-Steckdose angelegt.
Ich mache per Webaufruf aus kodi einen entsprechenden http-get, um das Ding zu toggeln.
Allerdings: wenn ich ein paar mal hintereinander aus kodi aufrufe, schaltet die Steckdose natürlich immer wieder ein und aus.
Gibt es hier einen Trick, wie man das unterbinden kann?

Danke und cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

frank

ZitatGibt es hier einen Trick, wie man das unterbinden kann?
komische frage!  ;)

Zitatwenn ich ein paar mal hintereinander aus kodi aufrufe, schaltet die Steckdose natürlich immer wieder ein und aus.
einfach weniger aufrufen, oder?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Otto123

Hallo Pula,

Zitat von: pula am 23 August 2015, 20:40:16
mal wieder so eine Anfängerfrage...

Ich mache per Webaufruf aus kodi einen entsprechenden http-get, um das Ding zu toggeln.
Allerdings: wenn ich ein paar mal hintereinander aus kodi aufrufe, schaltet die Steckdose natürlich immer wieder ein und aus.
Gibt es hier einen Trick, wie man das unterbinden kann?
QEE würde der Lateiner sagen: Was zu erwarten war.

Willst Du uns testen? Ist das ein versteckter Witz?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

pula

Hallo,

ggg nein, das ist KEIN Test oder Trick....
Es geht darum: Dieser Toggle wird im Hintergrund über die Fernbedienung von kodi aufgerufen. Und wenn sich nicht sofort was tut, drückt die Frau wieder und wieder auf den Knopf der Fernbedienung. Manchmal dauert es aus noch unbekannten Gründen ein wenig, bis das toggle wirklich funktioniert.
Und wenn die Frau wieder und wieder den Knopf drückt, schaltet sich nachher der TV ein und aus und ein und aus und....

Ich hoffe, ich konnte mein Anliegen jetzt ein wenig verständlicher machen :-)

Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

marvin78

Du wirst uns schon genauer sagen müssen, wie du das umgesetzt hast, damit man dir helfen kann. Etwas Code wäre evenentuell hilfreich.

pula

Sorry...

Ich hatte das damals mal hier http://forum.fhem.de/index.php/topic,36878.msg291515.html#msg291515 beschrieben.

Ist jetzt nicht so viel dahinter, im wesentlichen rufe ich die url auf, die in fhem den toggle macht (in python - über kodi):

import urllib
import urllib2
url = "https://192.168.x.x:8083/fhem?cmd=set%20wz_kino%20toggle"

username = "xxxx"
password = "xxxx"
p = urllib2.HTTPPasswordMgrWithDefaultRealm()

p.add_password(None, url, username, password)

handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

page = urllib2.urlopen(url).read()


Und dann noch in der remote.xml die Routine mit dem Power-Button der Fernbedienung verknüpft:

<power>XBMC.RunScript(/storage/.kodi/userdata/toggle_tv.py)</power>
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

marvin78

#6
Ich denke, du müsstest in deine Funktion in Kodi etwas einbauen, dass den toogle für einige Sekunden blockiert oder den Power-Button ein paar Sekunden deaktiviert.

Alernativ baust du deine Python Funktion auf bspw. telnet um und fragst den state-Timestamp der Steckdose ab, um mit der Funktion nur dann zu reagieren, wenn die letzte Änderung x-Sekunden her ist.

frank

denkbar wäre auch folgendes vorgehen:

du schaltest den aktor nicht direkt, sondern über einen virtuellen button der mit dem aktor gepeert ist. dadurch gäbe es nun mindestens 2 möglichkeiten des "blockierens".

1. die eleganteste über die statemachine des aktors. da es je 2 timer für die zustände on (on, dlyOff) und off (off, dlyOn) gibt, könnte man den jeweils ersten (off, on) für eine "totzeit" (zb 5 sek) konfigurieren, in der keine trigger aktiv sind. erst der wechsel in den jeweils zweiten zustand (dlyOn, dlyOff) erlaubt wieder trigger. das wären in diesem fall dann die dauerzustände, mit unendlicher dauer (timer jewewils unused)

2. direkt nach dem ersten toggeln ein inhibit=on zu senden, dass den aktor für trigger aller peers sperrt. ein timer (at) müsste dann jeweils nach ablauf ein inhibit=off senden, um die trigger wieder "durch zu lassen".
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

marvin78

#8
Zitat von: frank am 24 August 2015, 11:59:18

2. direkt nach dem ersten toggeln ein inhibit=on zu senden, dass den aktor für trigger aller peers sperrt. ein timer (at) müsste dann jeweils nach ablauf ein inhibit=off senden, um die trigger wieder "durch zu lassen".

inhibit hatte ich auch als Vorschlag aufgeschrieben, es aber wieder gelöscht (siehe Edit), da zumindest bei mir inhibit aktuell bei keinem HM Device funktioniert (es bleibt auf set_(on|off) stehen und hat keinerlei Auswirkungen. Ich hatte diesen Vorschlag zur Sicherheit noch einmal getestet und dieses Problem entdeckt. Ob das Problem bei mir liegt, oder an der aktuellen HM-Version, weiß ich nicht und konnte ich noch nicht checken.

Prof. Dr. Peter Henning

Man könnte aber auch "die Frau" (nicht meine Wortwahl...) entsprechend trainieren. Frauen sind lernfähig.

LG

pah

Otto123

#10
Hallo Pula,

Warum lässt Du den toggle vom Schalter machen? Du willst doch den Toggle über deine Kette FB - Kodi - HM Dose machen. Also mach "DU" ihn auch:
Die HM Dose ist off.
-> Du drückst die FB.
-> Du fragst ab die HM Dose ist off
-> Du sendest der HM Dose ein on.

Die HM Dose ist on.
-> Du drückst die FB
-> Du fragst die Dose ab, diese ist on
-> Du sendest der HM Dose ein off

Das muss doch sauber funktionieren!?
Die Schlange musst Du selbst füttern 8) (ich meine nicht "die Frau", von der hier gerade alle reden)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

frank

Zitat von: marvin78 am 24 August 2015, 12:09:41
..., da zumindest bei mir inhibit aktuell bei keinem HM Device funktioniert (es bleibt auf set_(on|off) stehen und hat keinerlei Auswirkungen.
ich nutze inhibit erfolgreich bei einem hm-lc-dim1t-fm, der mit einem button eines hm-lc-sw1pbu-fm (alternative fw) gepeert ist. damit verhindere ich tagsüber das einschalten der terrassenbeleuchtung. gerade nochmal gecheckt, funktioniert mit aktuellem fhem.

die zustände "set_on/off" sind dabei auch "normal". ich denke das liegt daran, dass der aktor keine bestätigung für diesen zustand liefert. zumindestens weiss (noch) niemand, wie es möglich wäre. insofern macht das set_ schon sinn, da man ja nicht wirklich weiss, ob der aktor den befehl empfangen und umgesetzt hat.

Zitat von: Prof. Dr. Peter Henning am 24 August 2015, 12:25:50
Man könnte aber auch "die Frau" (nicht meine Wortwahl...) entsprechend trainieren. Frauen sind lernfähig.
oder eine "kompatible" fernbedienung besorgen.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

marvin78

Frau trainieren sollte gar nicht nötig sein. Ich erwarte, dass sie selbst denkt und das tut sie auch ;)

Dass das set_on|off schon korrekt ist, leuchtet ein und ist ok. Trotzdem hat es bei mir keinerlei Auswirkungen. Ich muss das mal näher testen und prüfen, wenn ich Zeit habe. Es kann durchaus an mir liegen.

SamirSpeed


pula

Erstmal vielen Dank für die hilfreichen Antworten - auch wenn ich erst am Wochenende dazu kommen werde, das zu testen.
Und: Ich freue mich, daß mein feiner Zynismus (!)  (die Frau) hier bemerkt wird!

Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram