FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: pula am 23 August 2015, 20:40:16

Titel: (hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: pula am 23 August 2015, 20:40:16
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
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: frank am 23 August 2015, 22:43:17
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
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: Otto123 am 23 August 2015, 23:57:01
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
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: pula am 24 August 2015, 08:31:49
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
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: marvin78 am 24 August 2015, 08:33:21
Du wirst uns schon genauer sagen müssen, wie du das umgesetzt hast, damit man dir helfen kann. Etwas Code wäre evenentuell hilfreich.
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: pula am 24 August 2015, 10:46:56
Sorry...

Ich hatte das damals mal hier http://forum.fhem.de/index.php/topic,36878.msg291515.html#msg291515 (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>
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: marvin78 am 24 August 2015, 10:57:05
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.
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: frank am 24 August 2015, 11:59:18
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".
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: marvin78 am 24 August 2015, 12:09:41
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.
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag 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.

LG

pah
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: Otto123 am 24 August 2015, 12:33:16
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
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: frank am 24 August 2015, 12:37:02
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.  ;)
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: marvin78 am 24 August 2015, 12:41:53
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.
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: SamirSpeed am 24 August 2015, 15:25:28
Nicht so viel aufrufen oder?
Titel: Antw:(hm) Steckdose nach Betätigung für n Sekunden blockieren
Beitrag von: pula am 24 August 2015, 19:18:03
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