DOIF auf timestamp-Änderung triggern?

Begonnen von joginet, 20 März 2018, 15:34:36

Vorheriges Thema - Nächstes Thema

Otto123

Der Eventmonitor hat dieses Feature vielleicht seit einem Jahr?

Dann zeig doch mal die Events wo #74 vorkommt.

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

joginet

#16
Otto - hat sich soeben erledigt...
Man kann ruhig doof sein, man muß sich nur zu helfen wissen.  8)

Ich habe es den Arduino regeln lassen.
Ich gebe einfach eine Zeile über die serielle Schnittstelle aus, auf die getriggert werden kann.
Danach schreibe ich direkt nochmal etwas anderes über seriell.
So sieht es im Arduino-Sketch aus:

if (res==75) {                    // Sentence 74
    digitalWrite(led, HIGH);       
    recognizer.say("Volume goes up!");
    Serial.println("up_on");
    Serial.println("up_off");
    delay(3000);
    digitalWrite(led, LOW);
  }
   if (res==76) {                    // Sentence 75
    digitalWrite(led, HIGH);       
    recognizer.say("Volume goes down!");
    Serial.println("down_on");
    Serial.println("down_off");
    delay(3000);
    digitalWrite(led, LOW);
  }


jetzt triggert mein DOIF auf den state, nicht auf den STATE (richtig so?):

define KuecheVolume DOIF([myArduino1:state] eq "UNKNOWNCODE up_on") (set Kueche volumeUp)

Und weil direkt danach auf "UNKNOWNCODE up_off" gewechselt wird, ist das DOIF sofort wieder bereit für das nächste "Volume up".

Trotzdem wäre es interessant zu wissen, ob der timestamp als DOIF-trigger verwendet werden kann.

Erstmal Danke und Gruß, Jochen

Achso: PS - kann ich den Eventmonitor einzelnd updaten? Ich kann das Modul irgendwie nicht finden. Vor einen kompletten FHEM-Update habe ich großen Respekt, das hat mir schonmal einiges zerhagelt. Dafür ist mein setup inzwischen zu komplex  ;D
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

Otto123

Zitat von: joginet am 20 März 2018, 21:46:46
Achso: PS - kann ich den Eventmonitor einzelnd updaten? Ich kann das Modul irgendwie nicht finden. Vor einen kompletten FHEM-Update habe ich großen Respekt, das hat mir schonmal einiges zerhagelt. Dafür ist mein setup inzwischen zu komplex  ;D
Nein. Von solchen Einzel Updates wird dringend abgeraten.

Aber es gibt backup  ;D

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

joginet

Ich weiss.  8)
Und mein Backup ist sogar einigermaßen aktuell  ;D
Ich werde beizeiten mal upgraden, die Möglichkeit der direkten "device-Erzeugung" war mir nicht bekannt und klingt sehr interessant & zeitsparend...

Gruß, Jochen
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

Damian

Zitat von: joginet am 20 März 2018, 15:34:36
Moin Forum,

ich habe eine - vermutlich dumme - DOIF Frage. Ich bastele an meiner Sprachsteuerung per Arduino und MOVI-Shield.
Für meine Squeezebox-Player möchte ich einen Sprach-Befehl "Volume Up" oder "Volume Down" verwenden.

Das klappt auch und ich kann mit einem DOIF auf das vom Arduino ausgelöste Event ("#74") triggern:

define KuecheVolume DOIF ([myArduino1:"#74"])(set Kueche volumeUp)

Die Lautstärke wird in 10er-Schritten angehoben. Das Problem ist, ich kann das nur einmal machen.
Wenn ich den Befehl wiederhole (um lauter zu werden) gibt es das selbe Event ("#74") und das DOIF löst nicht aus.
Nur der timestamp ändert sich.

Kann ich  mein DOIF bei gleichem Event mit geändertem timestamp auslösen?

Gruß, Jochen

Das ist ein Fall für DOIF-Perl, dort kann man einen Timer setzen, auf den man selbst reagiert, seine Aktion ausführt (hier Lautstärke erhöhen), einen Zähler erhöht und wieder einen einen Timer setzt. Das Ganze wiederholt man bis eine bestimmte Bedingung erfüllt ist. Ist eine Sache von ein paar Zeilen.



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

joginet

Hallo Damian,

sowas ähnliches hatte ich mir schon gedacht. Ich werde das "for future use" im Hinterkopf behalten.
Im Moment bin ich zufrieden - alles läuft wie gewünscht.

Gruß, Jochen
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi