HMW_IO_12_Sw7_DR Ausgang soll über GPIO nach Zeit eingeschaltet werden

Begonnen von exot, 22 November 2016, 15:33:37

Vorheriges Thema - Nächstes Thema

exot

Hallo,
Der GPIO 27 meines Pi bekommt über einen Level Switch (Relaisausgang) den Wasserstand des Teiches mitgeteilt,
Readings GPIO 27:
Longpress off
Pinlevel low
state off
bzw.
Longpress on
Pinlevel high
state on

Nun möchte ich, dass bei on des GPIO 27 der Ausgang 7 des HMW_IO_12_Sw7 für 10 Minuten auf ein (1) gesetzt wird.
In dieser Zeitspanne hat der Teich wieder seinen Wasserstand erreicht  und schaltet dann GPIO 27 auf off.
Wenn off dann soll der Ausgang 7 wieder auf aus (0) gesetzt werden.
Der HMW_IO_12_Sw7 ist eingepflegt und nachfolgend die zugehörigen Angaben.
Internals:
DE              0001129C_19
MODEL           HMW_IO_12_Sw7_DR
NAME            WasserstandTeich
NR                 114
PeerList
STATE           off
TYPE            HM485
chanNo           19
device          HMW_IO_12_Sw7_DR_LEQ1286311

Readings:
R-logging on    2016-11-20 15:06:12
state     off   2016-11-21 09:18:17
working   off   2016-11-21 09:18:17

Attributes:
devStateIcon   on:Wasserstand_on off:Wasserstand_off   
icon           scene_pool     
model          HMW_IO_12_Sw7_DR     
room           1.4.0 Garten     
subType        switch

Mir ist unklar wie ich diese Ansteuerung angehen soll.
Habe auch beim Durchsuchen des Forums nichts in dieser Hinsicht gefunden.
Bitte um Hilfestellung für den ersten Schritt.
Bis jetzt hatte ich eine Zeitschaltuhr die die vorgegebene Zeit geschaltet hat. Diese hat leider den Geist aufgegeben und eine Neue
möchte ich nicht kaufen, da ich mir sicher bin, dass das der HMW_IO_12_Sw7 bewerkstelligen kann.
Danke
Gruß Michael

exot

Hallo,
Habe jetzt versucht über ein notify die Sache zum laufen zu bekommen.

define Pin13 RPI_GPIO 27
attr Pin13 direction input
define Wasserstand_auto_on notify Pin13 {if ( Value("GPIOWasserstand") eq "on") {fhem("set WasserstandTeich on")}}
define Wasserstand_auto_off notify Pin13 {if ( Value("GPIOWasserstand") eq "off") {fhem("set WasserstandTeich off")}}

Aber leider war das nicht richtig.
Ich bitte um Hilfestellung.
Danke Michael

Brice

Ich weiß nicht, ob ich dir weiterhelfen kann, aber ich versuche es mal anhand meines GPIO_PIR. Da trigger ich die Notifys zu Abspielen von Musik ebenfalls auf "state" mit

if ("$EVENT" ne "off") bzw.
if ("$EVENT" eq "off")
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

abc2006

Zitat von: exot am 23 November 2016, 16:48:23
Hallo,
Habe jetzt versucht über ein notify die Sache zum laufen zu bekommen.

define Pin13 RPI_GPIO 27
attr Pin13 direction input
define Wasserstand_auto_on notify Pin13 {if ( Value("GPIOWasserstand") eq "on") {fhem("set WasserstandTeich on")}}
define Wasserstand_auto_off notify Pin13 {if ( Value("GPIOWasserstand") eq "off") {fhem("set WasserstandTeich off")}}




davon ausgegangen, dass Pin13 im Reading state "on" oder "off" hat, je nach aktuellem Wasserstand:

define Pin13 RPI_GPIO 27
attr Pin13 direction input
define DF_Wasserstand_automatik doif ([Pin13:state] eq "on") (set WasserstandTeich on) DOELSE (set WasserstandTeich off)


Nachteil: Wenn der Teich ein Loch hat, läuft das Wasser ewig ...
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

exot

Hallo,
DANKE, super , dass ihr versucht mir zu helfen,
Ich werde nochmal genau erklären wie der Füllstand mit der Schaltuhr funktioniert hat.
Die Schaltuhr hat ein Relais jeweils um 6:00 und um 12:00 für 15 Minuten auf ein geschaltet,
unabhängig ob der Wasserstand zu niedrig oder ok war.
Der Level Switch schaltet bei zu niederem Wasserstand über einen Kontakt ein zweites Relais.
Die Schließer beider Relais in Reihe schalten ein drittes Relais, welches das Magnetventil öffnet.
Egal ob der Wasserstand erreicht ist oder nicht schließt das Magnetventil nach 15 Minuten.
Der Level Switch schaltet sehr zuverlässig.
Zustand jetzt:
Ich habe jetzt zur Signalisation den Level Switch mit Pin 13 GPIO 27 verbunden.
Mit dem Ausgang 7 des HMW_IO_12_Sw7 schalte ich den Wasserstand.
Mein Vorhaben ist,
dass Ausgang 7 des HMW_IO_12_Sw7 um 6:00 und um 12:00 für 15 Minuten auf on geht
aber nur wenn der Pin 13 über den Level Switch ein on bekommt. Schaltet der LSwitch auf off soll Ausgang 7 auch off schalten.
Ist das machbar?
Gruß Michael




abc2006

Hi,
jetzt musste ich das echt dreimal lesen, bis ichs kapiert hab.  ;D ist schon spät:-)
Du willst, dass WasserstandTeich on ist um 0600-0615 und 1200-1215, aber nur, wenn der Level Switch auch on ist?

define Pin13 RPI_GPIO 27
attr Pin13 direction input
define DF_Wasserstand_automatik doif (([06:00-06:15] or [12:00-12:15]) and [Pin13:state] eq "on") (set WasserstandTeich on) DOELSE (set WasserstandTeich off)


Allerdings würde ich dir doch mal zu der commandref raten (fhem.de/commandref), da sind genau diese Beispiele eigentlich gut erklärt. Selbst ein bisschen basteln und testen, und du hast das Handwerkszeug für weitere und kompliziertere Sachen. btw: das Testen von diesem Beispiel liegt sowieso in deiner Hand!

Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

exot

Hallo Stephan,
Danke für Deine Hilfe.
Mit der commandref ist das für mich so eine Sache.
Wenn ich 20 Jahre jünger wäre ginge das sicherlich schon klar.
Aber in meinem Alter (67) ist es sicherlich etwas problematisch,
so ein komplexes Thema wie es Fhem ist zu erlernen.
Ich komme mir schon immer bescheiden vor wenn ich mein Alter vorschiebe.
Es ist aber nun mal so.
Aber so schlecht habe ich ja mit meinem Vorhaben nicht gelegen.
Deine Zeile 1 und 2 hatte ich ja schon richtig eingebunden.
Zu Zeile 3 -- was heißt DF bei Wasserstand_automatik.
Gruß Michael

abc2006

Hey,

das DF_Wasserstand_automatik ist nur der Name. die Zeile könnte auch lauten

define Hans_Harry doif (([06:00-06:15] or [12:00-12:15]) and [Pin13:state] eq "on") (set WasserstandTeich on) DOELSE (set WasserstandTeich off)


Nur: unter Hans_Harry weisst du vermutlich morgen schon nicht mehr, wofür das teil zuständig ist.
Ich habe bei mir die defines nach typ benannt, also alle doif's heissen DF_*, alle Notifies N_*, alle AT's AT_* usw. Erleichtert einem massiv die Orientierung.

Zum Thema commandref: probier es einfach. Wenn da was steht, tipp es ein und schau, was dann passiert.  Ich finde es besser,  Menschen beizubringen, sich selbst zu helfen, als die Lösungen vorzugeben;-)
Weiter so, ist toll, dass du dich damit befasst:-)

Grüße
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

exot

Hallo Stephan,
Danke für Deine Antwort und die Erklärung.
ZitatIch finde es besser,  Menschen beizubringen, sich selbst zu helfen, als die Lösungen vorzugeben
Da Stimme ich 100%ig zu - nur ist zu Beginn ein Ansatz notwendig damit klar ist in welche Richtung die Reise gehen muss.
Ich hatte in meiner Aufforderung zur Hilfe  auch um diesen Ansatz gebeten um so erfreuter bin ich natürlich
das Du mir eine Lösung übermittelt hast.
Im vergangenen Winter hatte ich mich sehr viel mit Fhem beschäftigt, da habe ich dann auch den Erfolg gespürt.
Leider mit dem Beginn der Gartenzeit nicht mehr. Und das bestraft mich jetzt.
So ist das leben nun mal.
Auf alle Fälle nochmals vielen Dank.
Ein schönes Wochenende wünscht Michael