AVR-NET-IO - Relaisansteuerung

Begonnen von martinbaumert, 09 April 2014, 18:45:10

Vorheriges Thema - Nächstes Thema

martinbaumert

Hallo Miteinander,
ich bin Anfänger und habe mich bis jetzt, glaube ich gut durchgelesen und gesucht.
Leider habe ich zu dieser, meiner Frage keine Antwort gefunden. Ich hoffe ich bin hier richtig.

Einige Info´s vorab:
Auf meiner FB7390 läuft seit einiger Zeit, der FHEM-Server mit einigen Homematic Komponenten. Ich habe mir das AVR-NET-IO zugelegt und mit Ethersex geflasht. 1Wire läuft und auch die Relais kann ich über die WEB-Oberfläche ansprechen.

Ich wollte jedoch die Relais mit dem Befehl ,,on-for-Timer xxx" einschalten. Geht nicht!

Erhalte die Meldung: ,, Unknown argument ?, choose one of on off ,,

Wie kann ich es ändern oder geht es ggf. gar nicht?
FHEM5.7@RaspPi.1: HMLAN,HM-CC-RT-DN,HM-LC-Sw1+SW2,HM-LC-BI1PBU-FM,HM-CC-RT-DN,HM-CC-TC, HM-TC-IT-WM-W-EU,HM-RC-8,HM-WDS100-C6-O,HM-Sen-MDIR-O,FBDECT, USB to OneWire + 2xRelay Card 8-fach mit DS2408 (Denkovi), 13xDS18B20

Tom_S

ich gehe mal davon aus, das du alles wie im Wiki gemacht hast.
Die Befehle die zur Verfügung stehen sind in der classdev bestimmt.
Dort hast du nur on und off oder?

Gruß
Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

Prof. Dr. Peter Henning

Bitte welcher Befehl wurde hier verwendet ?

LG

pah

martinbaumert

Hallo,

ich habe mich an die Anweisung entsprechend der Seite "http://www.fhemwiki.de/wiki/AVR-NET-IO" gehalten.

In meiner "relais:classdef-Datei" steht folgendes:

Uebergabeparameter HEX Adresse Port
params RelaisPort
# erst alle Ports PC.. auf Ausgang setzen und dann per Hexcode schalten
set on cmd {"io set ddr 2 ff\nio set port 2 %RelaisPort %RelaisPort"}
set on postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
set off cmd {"io set ddr 2 ff\nio set port 2 00 %RelaisPort"}
set off postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}

Danke

Gruß
Martin
FHEM5.7@RaspPi.1: HMLAN,HM-CC-RT-DN,HM-LC-Sw1+SW2,HM-LC-BI1PBU-FM,HM-CC-RT-DN,HM-CC-TC, HM-TC-IT-WM-W-EU,HM-RC-8,HM-WDS100-C6-O,HM-Sen-MDIR-O,FBDECT, USB to OneWire + 2xRelay Card 8-fach mit DS2408 (Denkovi), 13xDS18B20

Tom_S

na Bitte


set on cmd {"..."}
set off cmd {"..."}


du hast also on und off definiert. Wenn du on-for-timer möchtest must du


set on-for-timer cmd {.......


auch definieren. Dahinter natürlich eine Befehssequenz die der Controller versteht (abhängig von der Firmware)

mfg
Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

martinbaumert

Hallo Tom_S,

erst einmal danke für deinen Tipp.

Habe ich eingefügt und zwar wie folgt:

# Uebergabeparameter HEX Adresse Port
params RelaisPort
# erst alle Ports PC.. auf Ausgang setzen und dann per Hexcode schalten
set on cmd {"io set ddr 2 ff\nio set port 2 %RelaisPort %RelaisPort"}
set on postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
set off cmd {"io set ddr 2 ff\nio set port 2 00 %RelaisPort"}
set off postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
set on-for-timer cmd {"io set ddr 2 ff\nio set port 2 %RelaisPort %RelaisPort"}
set on-for-timer postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}


Jetzt schaltet das Relais ein ohne einen Fehler anzuzeigen. Jedoch nicht mehr aus. Es bleibt dauerhaft "An". Wie gesagt solange beschäftig ich mich noch nicht mit der Materie. Wenn ich nur wüsste wo etwas stehen könnte. Der Timer wird nicht aktiviert.

lg
Martin Baumert

FHEM5.7@RaspPi.1: HMLAN,HM-CC-RT-DN,HM-LC-Sw1+SW2,HM-LC-BI1PBU-FM,HM-CC-RT-DN,HM-CC-TC, HM-TC-IT-WM-W-EU,HM-RC-8,HM-WDS100-C6-O,HM-Sen-MDIR-O,FBDECT, USB to OneWire + 2xRelay Card 8-fach mit DS2408 (Denkovi), 13xDS18B20

Tom_S

als du siehst, das alles funktioniert wie beschrieben.
Du hast in der classdef einen neuen FHEM Befehl definiert. Der wird angenommen und ausgeführt. Dem AVR sagst du aber nichts anderes als mit dem "on" Befehl. Also macht er auch nichts anderes.
Der on-for-timer Befehl ist etwas für FS20. Die können das. Ich habe mal überlegt es in ethersex einzubauen. Für die Ports wäre das ja relativ einfach, aber bei Funk müsste man die Adresse speichern und nach x sec. den Aus-Befehl senden. Intertechno und 2272 können das ja nicht. Habe ich aber wegen Nutzlosigkeit verworfen. Wenn du es wirklich brauchst (nicht nur weil es im Einsteigerguide steht), dann kannst du mit dem set on ein at definieren das wieder ausschaltet.

schöne Ostern
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

martinbaumert

Hallo Tom_S,

die Frage mit dem Benötigen kann ich mit "Ja" beantworten. Vielleicht ist es einfacher, zu sagen welche Aufgabenstellung ich damit lösen möchte. Ich habe zwei Heizungsmischer welche die entsprechend ansteuern möchte. Es sind Standard-Mischer mit einer Laufzeit von 240 Sekunden zwischen "Auf und Zu". Ich habe mir schon eine variable Berechnung der Ansteuerung bei kleiner bzw. großer Temperaturabweichung ausgedacht. Da "on-for-timer" nicht klappte. Habe ich des mit "sleep" versucht, dann ging jedoch nichts mehr auf der FB mit den FHEM. "Auslastung 100%".

Schöne Osterfeiertage

Gruß
Martin
FHEM5.7@RaspPi.1: HMLAN,HM-CC-RT-DN,HM-LC-Sw1+SW2,HM-LC-BI1PBU-FM,HM-CC-RT-DN,HM-CC-TC, HM-TC-IT-WM-W-EU,HM-RC-8,HM-WDS100-C6-O,HM-Sen-MDIR-O,FBDECT, USB to OneWire + 2xRelay Card 8-fach mit DS2408 (Denkovi), 13xDS18B20

Tom_S

sleep ist keine gute Idee. Dann wird FHEM für die Zeit blockiert. Kann man zur Not mal eine Sekunde machen.
Was gefällt dir an meinem Vorschlag mit einem "at" nicht?

mfg
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

martinbaumert

Hallo Tom,

Hintergrund ist, bei einer Mischeransteuerung wird die Laufzeit es Mischers verändert. Meine beiden Mischer benötigen 240 Sekunden für die viertel Umdrehung (Auf/Zu). Im normal Fall könnte meine Pufferspeicher eine Temperatur von +60°C und mehr haben. Diese heiße Wasser sollte nicht in die Fußbodenheizungung gelangen. Bei allen Regelungen welche ich kenne verändert sich die "Taktzeit" für den Mischer. Große Abweichung - mehr Laufzeit, kleine Abweichung - kurze Laufzeit. Ich hatte den Wunsch die Zeit für Betrieb somit auch verändern zu können.

Besteht ggf. auch die Möglichkiet bei der "at" Funktion die Zeit durch das System verändern zu lassen?

Gruß
Martin
FHEM5.7@RaspPi.1: HMLAN,HM-CC-RT-DN,HM-LC-Sw1+SW2,HM-LC-BI1PBU-FM,HM-CC-RT-DN,HM-CC-TC, HM-TC-IT-WM-W-EU,HM-RC-8,HM-WDS100-C6-O,HM-Sen-MDIR-O,FBDECT, USB to OneWire + 2xRelay Card 8-fach mit DS2408 (Denkovi), 13xDS18B20

Tom_S

Zitat
Besteht ggf. auch die Möglichkiet bei der "at" Funktion die Zeit durch das System verändern zu lassen?

gute Frage? Da wäre eine eigene Steuerung sinnvoller oder? Du musst den Wert doch auch erst irgendwo berechnen.
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus