Autor Thema: [gelöst] Ausgang Relais per Taster schalten  (Gelesen 860 mal)

Offline dan1180

  • Full Member
  • ***
  • Beiträge: 281
[gelöst] Ausgang Relais per Taster schalten
« am: 03 Dezember 2021, 11:01:03 »
Hallo zusammen,

ich habe ein Denkovi 1wire-Relais für meine Heizungssteuerung im Einsatz.
https://denkovi.com/1-wire-eight-channel-relay-board-for-home-automation

Meine Belegung:
A: Ölbrenner
B: Umwälzpumpe
E: Pumpe Fußbodenheizung
F: Pumpe Heizkörperkreis
G: Mischer Fußbodenheizung öffnen
H: Mischer Fußbodenheizung schließen

E und F habe ich über readinsProxy "sichtbar" gemacht.
A und B habe ich über einen Dummy-Switch und jeweils ein DOIF angesteuert, welche beim Drücken das Relais für eine Zeit X einschalten und gleichzeitig den Status zurückgeben.

Hier das DOIF:
bttmrobk=Button Timer Ölbrennkessel=Dummy
owswitch=Denkovi 1wire-Relais
obk=Ausgang A

([bttmrobk:state] eq "on")
     (set owswitch output obk on-for-timer 1800)
DOELSEIF
([owswitch:obk] eq "0")
     (set bttmrobk off)
DOELSEIF
([bttmrobk:state] eq "off")
     (set owswitch output obk off)

Mein "Traum" wäre es, erstens die Ausgänge direkt schaltbar zu machen (wie bei einem HM-LC-SW4-DR) und/oder einen Taster zu haben, der beim Betätigen meinen Befehl ausführt, ohne ein separates notify oder DOIF zu benötigen. Geht das?

Besten Dank für jede Hilfe.
Dan


« Letzte Änderung: 03 Dezember 2021, 13:23:41 von dan1180 »
FHEM 6.1 auf RPi3,HMLAN

DS2480(OWX) für 1xDS2408, 6xDS18B20 an GPIO

3xHM-LC-Sw1-FM, 4xHM-LC-Sw4-FM, 7xHM-TC-IT-WM-W-EU, 4XHM-CC-RT-DN, 5xHM-SEC-SD, 1xHM-LC-SW1-BA-PCB, 3xHM-Sen-MDIR-O-2, 1xHM-PB-2-WM, 5xHM-LC-BL1-FM, 17xHM-LC-Bl1PBU-FM

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16869
Antw:Ausgang Relais per Taster schalten
« Antwort #1 am: 03 Dezember 2021, 11:11:21 »
Hallo zurück,

habe zwar kein "echtes" 1-wire (außer "ein paar" DS18B20 an diversen MySensors-Nodes), aber zum einen meine ich, dass es eigentlich reichen sollte, den out-Ausgang als readingsProxy zu vereinzeln, wie das im Wiki auch empfohlen ist.

Falls das nicht reicht und eine Art "sidekick" auf ein anderes Device erforderlich ist, hilft dir eventuell das (ab) hier weiter: https://forum.fhem.de/index.php/topic,124240.msg1190483.html#msg1190483
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline dan1180

  • Full Member
  • ***
  • Beiträge: 281
Antw:Ausgang Relais per Taster schalten
« Antwort #2 am: 03 Dezember 2021, 11:25:57 »
Hallo Beta-User,

danke für die schnelle Antwort. Leider kann ich mit einem readingsProxy die Ausgänge nur lese aber nicht schalten. Mein readingsProxy, das ich mir zum Testen mal auf einen blinden Ausgang gelegt habe, sieht wie folgt aus:
Internals:
   CFGFN     
   DEF        owswitch:C
   DEVICE     owswitch
   FUUID      61a9eef8-f33f-bc18-c429-00adab826d58244b
   NAME       TestRP
   NOTIFYDEV  global,owswitch
   NR         18512
   NTFY_ORDER 50-TestRP
   READING    C
   STATE      0
   TYPE       readingsProxy
   CONTENT:
     owswitch   1
   READINGS:
     2021-12-03 11:23:11   lastCmd         on
     2021-12-03 11:19:59   state           0
Attributes:
   eventMap   on:1 off:0
   setList    on off
   webCmd     on:off

Die Attribute habe ich alle einzeln und in jeder erdenklichen Kombination versucht.

Deinen anderen Threat werde ich mir jetzt mal zu Gemüte führen.

Gruß
Dan
FHEM 6.1 auf RPi3,HMLAN

DS2480(OWX) für 1xDS2408, 6xDS18B20 an GPIO

3xHM-LC-Sw1-FM, 4xHM-LC-Sw4-FM, 7xHM-TC-IT-WM-W-EU, 4XHM-CC-RT-DN, 5xHM-SEC-SD, 1xHM-LC-SW1-BA-PCB, 3xHM-Sen-MDIR-O-2, 1xHM-PB-2-WM, 5xHM-LC-BL1-FM, 17xHM-LC-Bl1PBU-FM

Offline dan1180

  • Full Member
  • ***
  • Beiträge: 281
Antw:Ausgang Relais per Taster schalten
« Antwort #3 am: 03 Dezember 2021, 12:03:12 »
OK...ich bin mal einen riesen Schritt weiter. Mit

Internals:
   CFGFN     
   DEF        owswitch:C
   DEVICE     owswitch
   FUUID      61a9eef8-f33f-bc18-c429-00adab826d58244b
   NAME       TestRP
   NOTIFYDEV  global,owswitch
   NR         18512
   NTFY_ORDER 50-TestRP
   READING    C
   STATE      0
   TYPE       readingsProxy
   CONTENT:
     owswitch   1
   READINGS:
     2021-12-03 11:53:20   lastCmd         on
     2021-12-03 11:53:33   state           0
Attributes:
   devStateIcon 1:btn_OfenAn 0:btn_off
   setFn      {fhem("set owswitch output C on-for-timer 10")}
   setList    on off

schaffe ich es mein Primärziel, den Brenner für eine Zeit X ohne Notify oder DOIF einzuschalten.

Leider bekomme ich mit folgenden Attributen
Internals:
   CFGFN     
   DEF        owswitch:C
   DEVICE     owswitch
   FUUID      61a9eef8-f33f-bc18-c429-00adab826d58244b
   NAME       TestRP
   NOTIFYDEV  global,owswitch
   NR         18512
   NTFY_ORDER 50-TestRP
   READING    C
   STATE      off
   TYPE       readingsProxy
   CONTENT:
     owswitch   1
   READINGS:
     2021-12-03 11:48:31   lastCmd         on
     2021-12-03 11:49:59   state           off
Attributes:
   devStateIcon 1:btn_OfenAn 0:btn_off
   setFn      {fhem("set owswitch output C on". ($CMD eq "on")? "on" : "off")}
   setList    on off
   valueFn    { !$VALUE ? "off" : "on" }

eine Fehlermeldung
Zitat
OWSWITCH: Set with unknown argument Unknown
FHEM 6.1 auf RPi3,HMLAN

DS2480(OWX) für 1xDS2408, 6xDS18B20 an GPIO

3xHM-LC-Sw1-FM, 4xHM-LC-Sw4-FM, 7xHM-TC-IT-WM-W-EU, 4XHM-CC-RT-DN, 5xHM-SEC-SD, 1xHM-LC-SW1-BA-PCB, 3xHM-Sen-MDIR-O-2, 1xHM-PB-2-WM, 5xHM-LC-BL1-FM, 17xHM-LC-Bl1PBU-FM

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16869
Antw:Ausgang Relais per Taster schalten
« Antwort #4 am: 03 Dezember 2021, 12:21:14 »
...wie im anderen Thread erläutert, müssen bei der setFn zuerst die Variablen ermittelt werden, diese concatenation klappt nicht in der Weise, dass man das "hinterher" mittels ternärem Operator schreiben könnte. Siehe meine (verbesserten) Beispiele.
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline dan1180

  • Full Member
  • ***
  • Beiträge: 281
Antw:Ausgang Relais per Taster schalten
« Antwort #5 am: 03 Dezember 2021, 13:23:20 »
Man muss natürlich auch im Richtigen Post schauen...

Viiielen Dank. Es funktioniert ALLES so wie ich es mir erhofft habe.
FHEM 6.1 auf RPi3,HMLAN

DS2480(OWX) für 1xDS2408, 6xDS18B20 an GPIO

3xHM-LC-Sw1-FM, 4xHM-LC-Sw4-FM, 7xHM-TC-IT-WM-W-EU, 4XHM-CC-RT-DN, 5xHM-SEC-SD, 1xHM-LC-SW1-BA-PCB, 3xHM-Sen-MDIR-O-2, 1xHM-PB-2-WM, 5xHM-LC-BL1-FM, 17xHM-LC-Bl1PBU-FM
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16869
Antw:[gelöst] Ausgang Relais per Taster schalten
« Antwort #6 am: 03 Dezember 2021, 13:27:08 »
Danke für das [gelöst] im Titel.

Super wäre es, wenn du deine fertige Lösung noch posten könntest und dabei vielleicht noch etwas klarer machen, was für was zuständig ist (welches "hardware"-Device input ist, welches dargestellt wird und was output-Kommandos sind).

Es fehlt leider bisher an einer geschlossenen Darstellung solcher Probleme, und hier stünde für "copy/paste" dann wieder nur (d)eine vorherige, also FALSCHE Lösung bereit ;) ...
Server: HP-T620@Debian 11, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline dan1180

  • Full Member
  • ***
  • Beiträge: 281
Antw:[gelöst] Ausgang Relais per Taster schalten
« Antwort #7 am: 03 Dezember 2021, 16:32:59 »
Aber klar doch. Danke für den Hinweis.

Ich bin nun mit meinem "Wissen" auch noch auf einen Eintrag im Wiki gestoßen, der das Problem beschreibt. Allerdings muss man dazu nach "readingsProxy" suchen und wird dann unter den Anwendungsbeispielen
Zitat
1-Wire 8-fach switch (DS2408) mit OWSWITCH als Output (erster Kanal)
fündig. Auf die Idee bin ich leider nicht gekommen...  ::):
https://wiki.fhem.de/wiki/ReadingsProxy

Fragestellung:
Relais auf Denkovi 1-Wire 8-fach Relais-Karte (DS2408) direkt, ohne Dummy-Schalter und Notify/DOIF, schalten.

Anwendung:
1. Brenner Ölheizung ein-/ausschalten.
2. Umwälzpumpe für Warmwasser für 5 Minuten einschalten.

Mit dem im Wiki angegebenen Code hat es bei mir allerdings nicht auf Anhieb funktioniert. Ich musste im Attribut setFN die beiden Kommandos "output A off" und "output A on" vertauschen sowie, ebenfalls mit vertauschtem „on“/„off“, das Attribut valueFN aus dem nächsten Absatz (on/off vertauschen) verwenden. Mit dem originalen valueFN bekam ich regelmäßig die Fehlermeldung
Zitat
PERL WARNING: Argument "off" isn't numeric in numeric eq (==) at (eval 2762) line 1.

Lösung:
So hat es bei mir dann funktioniert:
define SchalterA readingsProxy OWX:xxx
attr SchalterA setFn {($CMD eq "on")?"output A on":"output A off"}
attr SchalterA setList on off
attr SchalterA valueFn {($VALUE eq "on")?"on":"off"}
attr SchalterA webCmd on:off

Für den Timer (hier 5 Minuten) einfach setFN wie folgt angeben:
attr SchalterA setFn {fhem("set OWX output A on-for-timer 300")}

Wer, wie ich, nur das Icon zum Schalten haben möchte, kann unter webCmd nur einen ":" eintragen. Somit sind "on" und "off" ausgeblendet.

Ich hoffe es ist einigermaßen verständlich und ihr könnt mit der Erklärung etwas anfangen. Vielen Dank jedenfalls nochmal an Beta-User für seine Unterstützung!  :)
« Letzte Änderung: 03 Dezember 2021, 21:45:44 von dan1180 »
FHEM 6.1 auf RPi3,HMLAN

DS2480(OWX) für 1xDS2408, 6xDS18B20 an GPIO

3xHM-LC-Sw1-FM, 4xHM-LC-Sw4-FM, 7xHM-TC-IT-WM-W-EU, 4XHM-CC-RT-DN, 5xHM-SEC-SD, 1xHM-LC-SW1-BA-PCB, 3xHM-Sen-MDIR-O-2, 1xHM-PB-2-WM, 5xHM-LC-BL1-FM, 17xHM-LC-Bl1PBU-FM