Wie realisiert man ein toggle bei einem sw

Begonnen von stgeran, 15 Dezember 2015, 19:51:22

Vorheriges Thema - Nächstes Thema

franky08

Tschuldigung, aber der letzte Post hat mich heute, nach einem Sch... Tag aufgeheitert, musste ich mal schreiben.
Und gute Nacht.

P.S. Leider vollkommen OT  ;D

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

stgeran

Geht wieder, genaue Prüfung morgen.
@franky08: kannste mal sehen, für was das forum gut ist. Einschliesslich den dummies wie mir :-)))
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

stgeran

So, es geht weiter. Ich kann Vent_Bad_Low mit dem Handsender einschalten und nach 30sec schaltet sich Vent_Bad_High dazu. Ein erneutes Drücken der gleichen Taste schaltet Vent_Bad_Low aus, Vent_Bad_High bleibt aber an, auch nach Ablauf der 30sec der Einschaltverzögerung. Ich dachte, vielleicht kommt der "Toggle" Befehl dort auch später an. Über das web kann ich Vent_Bad_High aber ausschalten. Was soll ich für ein Listing posten?
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

martinp876

Es gibt keinen togle trigger. Es gibt nur trigger. Ganz wichtig zu verstehen.
Alle, in Worten ALLE Aktionen werden von aktor bestimmt. Er empfängt einen kurzen oder langen triggern von einem seiner peers. Dann schaut er in seinen Registern, die er zu diesem peer angelegt hat nach, was er machen soll. Das kann u.a. sein einschalten, ausschalten, umschalten, zeitlich begrenzt einschalten, zeitlich begrenzt ausschalten, nichts, verzögert ein oder ausschalten,.... Und Kombinationen .

Die Aktion hängt vom peer ab, ob short oder long und davon, in welchem zustand der aktor gerade ist.

Bei Sensoren gibt es noch einen level. Bei buttons nicht.
Mein Vorschlag: entweder versuchte du dies zu verstehen oder du nutzt templates dazu. Für togle gibt es schon eines.

stgeran

Ich habe das
set hm templateDef SwDelayedOn delay "verzögertes einschalten" ActionType:jmpToTarget OffTime:110600 OnTime:100600 SwJtDlyOff:dlyOn SwJtDlyOn:on SwJtOff:dlyOn SwJtOn:no OnDly:p0 OffDly:0
schon eingegeben. Und dann
set hm templateSet Vent_Bad_Low Hand1_3:short 0
set hm templateSet Vent_Bad_High Hand1_3 SwDelayedOn:short 30
Das klappt ja auch. Beim erneuten Drücken von Hand1_3 geht, wie schon geschrieben, Vent_Bad_Low aus und Vent_Bad_High bleibt an.
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

stgeran

Es kommt beim ausführen ein
template undefined Hand1_3:short
oder ein
template undefined Hand1_3
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

martinp876

set hm templateSet <entity> <tempalteName> <peer>:short 30

also
set hm templateSet Vent_Bad_High SwDelayedOn Hand1_3:short 30

stimmt die Anleitung nicht?

stgeran

Es sieht so aus, als ob beim Verzögern der Unterschied zwischen Deinem
set hm templateSet Vent_Bad_High SwDelayedOn Hand1_3:short 30
und meinem die Position des Hand1_3 ist
set hm templateSet Vent_Bad_High Hand1_3 SwDelayedOn:short 30
Was ist aber beim Befehl ohne Verzögerung? Wäre dann
set hm templateSet Vent_Bad_High Hand1_3:short 0
richtig? Und muss ich jedesmal nach updates (shutdown restart) ein
set hm loadConfig
oder reicht ein
attr hm autoArchive 1
einmal eingegeben?
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

stgeran

Neuster Stand: Einschalten geht mit 30sec Verzögerung. Beim erneuten Betätigen von Hand1_3 geht nur Vent_Bad_Low aus, Vent_Bad_High bleibt an. Da komme ich nicht weiter.
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

martinp876

Nur zur Klarstellung: swdelay verzögert das einschalten. Autooff schaltet automatisch aus.
Swtoggle toggelt.

Was willst du?

stgeran

Ich möchte mit einem Tastendruck von Hand1_3
Vent_Bad_Low
einschalten und 30sec später soll sich
Vent_Bad_High
dazu schalten. Beim nächsten Tastendruck von Hand1_3 sollen beide zeitgleich ausgehen.
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

martinp876

Dein 2. Befehl war fast korrekt. Jedoch das template auch angeben!
Wie man templates per loadConfig wieder lädt ist beschrieben.
Wie man es automatisch nach lädt im einem postinitconfig auch schon oefter

stgeran

Meinst Du mit 2. Befehl das
set hm templateSet Vent_Bad_High Hand1_3:short 0 ?
wenn ja, dann Fehler von mir, es hätte
set hm templateSet Vent_Bad_Low Hand1_3:short 0 heisen müssen.
Und muß in DIESEN Befehl auch eine "Templatebezeichnung" hinein?
set hm templateSet Vent_Bad_Low Swtoggle Hand1_3:short 0
Wobei Swtoggle nicht in der Template Liste enthalten ist.
Was ich nicht verstehe: Vent_Bad_Low toggelt ja, nur Vent_Bad_High mit der 30sec Verzögerung nicht
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

stgeran

Ach, noch was: Wenn ich "postinitconfig" in die Suche eingebe, finde ich als einzigen Beitrag Deinen letzten Post.
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2

martinp876

Natürlich muss bei settemplate irgendwo das template stehen. Ist im commandref angegeben. Was sollte den fhem sonst machen?

Bei global gibt es ein init event, das man zum notify nutzen kann. Da solltest du ein include deines postinitconfig eintragen.
,