Hallo,
ich habe das timed4channel Modul an einem 1-Wire Bus angeschaltet. Die einzelnen Relais werden mit einem bash-Script gesteuert. Da ich jetzt die Sache mit fhem angehen will, stellt sich die Frage ob das Modul unterstützt wird.
Vom Entwickler des Moduls bekam ich mal folgende Beschreibung:
----------------------------------------------------------------------------------------
Here some important details for your information:
- The communication over the 1-Wire Bus goes via a DS2408 IC
- The DS2408 needs to be initialized so that all 8 Channels act as "Digital Outputs" and that Pin 10 (RSTZ) is configured as /STRB , an output strobe will occur after a PIO write (see Channel-Access Write command). The power-on default function of this pin is /RST.
- You need to send 8-Bit Control words to the module - like
P0 ... P5 => [1 - 60] - Values for ON-Time in minutes
- - selected Channel OFF
[61] - selected Channel ON
[62] - all Channels OFF - regardless of Channel
P6 and P7 => [0 - 3] - Value 0 is channel 1, value 1 is channel 2, value 2 is channel 3, value 3 is channel 4
Examples of binary control words:
PPPPPPPP
76543210
-----------
01001010; Channel 2 for 10 minutes ON
11100110; Channel 4 for 38 minutes ON
10000000; Channel 3 OFF
00111101; Channel 1 ON
00111110; All Channels OFF
-------------------------------------------------------------------------------
Tino
Zitat von: Tino.Glatzel am 26 November 2013, 20:56:03
- The communication over the 1-Wire Bus goes via a DS2408 IC
Im Prinzip ja, guckst Du bitte hier: http://fhem.de/commandref.html#OWDevice
Die korrekte Ansteuerung mit Fhem-Kommandos bleibt Dir überlassen.
Viele Grüße
Boris
Hallo Boris,
vielen Dank für Deine Antwort.
Um bei dem Modul ein Relais zu schalten, muss zuerst eine "2" in der Datei "strobe" gespeichert werden. Anschließend wird eine Kombination für das Relais und die Schaltzeit z.B. "0,0,0,0,0,0,0,0" in der Datei PIO.ALL gespeichert. Aus der Doku habe ich mir mal einiges zusammengesucht:
define ZirkulationsPumpe OWDevice 29.41A504000000
define ZirkulationsPumpe_aus notify ZirkulationsPumpe_aus set ZirkulationsPumpe strobe "2";;set ZirkulationsPumpe PIO.ALL "0,0,0,0,0,0,0,0"
trigger ZirkulationsPumpe_aus
Bin ich da auf dem richtigen weg ??
Tino
Sieht vom fhem-Kode her vernünftig aus. Teste am besten erstmal über die Weboberfläche vom owserver.
Gruß
Boris
Hallo Boris,
so, das Relais kann ich jetzt schalten:
define Zirkulation_ON notify Zirkulation_ON set TestRelais strobe 2;;set TestRelais PIO.ALL 0,1,0,0,0,0,1,1
Ein "tigger Zirkulation_ON" schaltet mir das Relais 0 des Moduls an.
Das Relais 2 kann ich mit einem set TestRelais strobe 2;;set TestRelais PIO.ALL 0,1,0,0,0,0,1,0 schalten.
Da man den Status des Relais nicht abfragen kann und ich diesen jedoch in einem Floorplan anzeigen will, suche ich nach einer Möglichkeit dies zu realisieren. Das PDF zu Floorplan habe ich auch schon durch, leider nichts gefunden.
Ich habe für dieses Modul vor einiger Zeit ein bash-Script geschrieben welches ich mit den Paramter "on, off, und status" füttern kann. Bei status bring gibt mir das Script ein "on" oder "off" zurück. Den Staus speichere ich mir in einem Statusfile. Soll ich evtl. auf dieses Script zurückgreifen?
Irgendwie würde ich es aber lieber direkt mit fhem lösen.
Tino
wenn du den aktuellen status wirklich an keinem der device readings sehen kannst brauchst du einen dummy den du on und off verpasst und dann per notify deine entsprechenden set TestRelais ausführst. der dummy hat dann auch immer den zusletzt gesetzten status.
wenn du in irgendeinem reading oder teil davon den aktuellen status sehen kannst schau dir mal readingsProxy an. das geht im prinip auch für den fall oben und würde die notify erübrigen.
gruss
andre
Hallo,
leider kann ich den Status auch nicht aus anderen Informationen auslesen. Somit bleibt mir Wohl nur der Weg über den dummy.
mit folgendem funktioniert die Sache
define Zirkulation_Status dummy
define Zirkulation_ON notify Zirkulation_ON set TestRelais strobe 2;;set TestRelais PIO.ALL 0,1,0,0,0,0,1,1;;set Zirkulation_Status ON
attr Zirkulation_ON fp_WohnungOG 205,282,1,Zirkulation_ON
define Zirkulation_OFF notify Zirkulation_OFF set TestRelais strobe 2;;set TestRelais PIO.ALL 1,1,1,1,1,1,1,1;;set Zirkulation_Status OFF
Ich habe jetzt mal geprüft wie sich die Sache verhält wenn ich das Modul vom Bus entferne und ich die Zirkulation anschalte.
Im Status ist dann auch ein ON.
Kann ich irgendwie auf einen Rückgabewert von dem "set TestRelais PIO.ALL 1,1,1,1,1,1,1,1" prüfen?
In einem bash-Script habe ich mit einem echo "1,1,1,1,1,1,1,1" > /opt/owfs/mnt/TestRelais/PIO.ALL die Zirkulation angeschaltet. War das Modul nicht am Bus, bekam ich vom "echo" einen Rückgabewert != 0. Somit konnte ich prüfen ob das Setzen des Wertes funktioniert hat.
Tino