Wago /SPS über Modbus(TCP/IP) in FHEM steuern

Begonnen von lechez, 05 Mai 2013, 10:50:13

Vorheriges Thema - Nächstes Thema

Hollo

Irgendwie passt das alles nicht so recht zusammen.

Wenn Du 3xxxxx er Adressen hast, sind das eigentlich Input Register.
Diese sind read-only und werden mit FC4 gelesen.
Ein Schreibbefehl sollte dementsprechend abgewiesen werden.

Wenn du etwas in Variablen lesen und schreiben willst, nimmst du Holding Register.
Regulär 4xxxxx Adressen, wobei du bei vielen Systemen nur den Offset angibst und die 1. Stelle durch die Art bzw. den Function Code definiert wird.

Wenn du einzelne Bits für Ein- oder Ausgänge willst, musst du (Modbus)Coil und die zugehörigen Function Codes nehmen (z.B. read discrete_inputs oder write single coil); alles andere bezieht sich immer auf 1 bis n Register à 16 Bit.

FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

ChrisD

Hallo,

Du kannst mit dem Attribut disableRegisterMapping das von von Hollo beschriebene normale Verhalten 'übersteuern':
attr Eingang_0 disableRegisterMapping 1
Damit sollte das Schreiben auf Adresse 32001 funktionieren.

ZitatWie kann ich mir in Fhem das Register als BIT Folge anzeigen lassen...
Dazu kannst du z.B. folgendes userReading verwenden:
attr Eingang_0 userReadings bitstring {unpack('B16', pack('n',ReadingsVal($name,'state',0)))}
Es erstellt ein neues Reading namens bitstring mit den einzelnen Bits, MSB ist links, LSB rechts.

Zitat...um dann bitweise auf Dummies zu interpretieren?
Dies kannst du z.B. mit einem notify machen nachdem du das userReading angelegt hast:
define n_Eingang_0_bits_to_dummies notify Eingang_0:bitstring.* {for (my $i = 0;; $i < 16;; $i++) {fhem("set Eingang_0_$i " . substr($EVTPART1,15-$i,1))}}
Die Dummies Eingang_0_0 bis Eingang_0_15 musst du von Hand anlegen.

Grüße,

ChrisD

Thomas Stark

Hallo zusammen,

vielen Dank für die zahlreichen Infos.
Nach langem Ausprobieren habe ich heute in Bezug auf die PLC200 Steuerung folgendes gelernt.
1.
Die Modbus Registeradressen ab 32000 bis .... sind in der Tat bei Wago als Inputs reserviert und somit auch beschreibbar von aussen.
Meine 16 Bits wiederum über die CoilAdresse von außen einzeln ansprechbar.
Dies aber nicht auf der Adresse 32000 sondern auf Adressen, welche in ECockpit erkundet werden müssen.
Beispiel
Register 32001.0 auf der Adresse 32786
Register 32001.1 auf der Adresse 32787
......
,,,,,,
Register 32001.15 auf der Adresse 32799


2.
Auf diese Adressen kann ich jetzt auch wunderbar aus Fhem heraus steuern.

Beispiel

define Rollo01_hoch ModbusCoil 1 32784

attr Rollo01_hoch IODev wago
attr Rollo01_hoch event-on-change-reading state
attr Rollo01_hoch group Taster
attr Rollo01_hoch room Rolladensteuerung
attr Rollo01_hoch webCmd statusRequest:toggle:on:off


3.
Register welche in ECockpit(Wago) auf nur lesen gesetzt sind , können auch mit dieser Methode nicht beschrieben werden von aussen.
Aber genau das wollte ich ja auch.
Wäre nicht so passend, wenn jemand den Ausgang hoch und runter von ausen gleichzeit mit 1 beschreibt.

Ich werden aber morgen mal weitermachen mit dem TIP von ChrisD

Euch allen vielen Dank und ich werde berichten.

Gruss Thomas

witschi87

Hallo Zusammen,

ich habe scheinbar eine ähnliche Umsetzung wie Thomas (Beitrag vor mir) und dazu ein paar Fragen.
Grundsätzliche Konfiguration ist, dass mein Jalousietaster "hoch" ein Input auf die Wago gibt, und diese den Output für das Hochfahren der Jalousie für 30 sekunden schaltet. Gleiches gilt für den Taster "runter". Ziel soll es nun sein, mit Alexa die Jalousien steuern zu können. Ich bin bereits so weit, dass ich mit "Alexa, mach die Jalousie im Büro an" hochgefahren wird. Immerhin. :-D

Als erstes wäre also die Frage, wie ich in Fhem einen Taster realisieren kann. Es müsste dann vermutlich ein on-for-timer sein?!

Meine bisherige Config sieht so aus:
Zitat
define jalousie_buero_hoch ModbusCoil wago MX0.0
attr jalousie_buero_hoch IODev WAGO_EG
attr jalousie_buero_hoch genericDeviceType switch
attr jalousie_buero_hoch alexaName Jalousie
attr jalousie_buero_hoch alexaRoom Büro
attr jalousie_buero_hoch group Jalousien,
attr jalousie_buero_hoch room Büro
attr jalousie_buero_hoch webCmd on-for-timer 1
attr jalousie_buero_hoch webCmdLabel hoch

Da stellt sich schon die erste Frage, ob der Input direkt schon von Alexa angesprochen werden sollte, oder ob es sinnvoller ist ein Dummy dazwischen zu haben.

Für jegliche Tipps und Tricks bin ich sehr dankbar. Ich komme zwar aus der IT - bin hier aber noch ziemlich am Anfang...

Vielen Dank und frohe Ostern! :-)
Christoph

Thomas Stark

Hallo Christof,
ich gehe davon aus, das dein Funktionsbaustein in der Wago die Eingänge gegenseitig verriegelt, sodass sichergestellt ist, das Hoch und Runter zeitgleich nicht gesetzt werden können. Bei mir ist das so und zusätzlich wird immer mit dem gegengesetztem Eingang ein Stop ausgelöst.
Nun zu meiner Lösung in Fhem.
Du brauchst 3 Dinge um in FHEM alles aus der Wago Zeit nah abbilden zu können.
1. Pro Rolladen 2 Eingänge (Modbus)
2. Pro Rolladen 2 Ausgänge um zu zeigen was gerade aktiv ist
3. 2 Dummies pro Rolladen um die Eingänge zeitbehaftet zu steuern.

Die Modbusvariablen sind vom Typ bool und können mit on/off beschrieben werden.
Bei mir ist das ein 16Bit Array für 16 Eingänge. Diese könne dann bitweise gesetzt werden.
Gleiches gilt für die Ausgänge. Hier lese ich dann halt bitweise die Ausgänge.

Die Dummys lassen sich dann auch wunderbar über Fhem Tablet Widgets ansprechen.


Hier meine Auszüge

#Eingänge  1 und 2 für die Rolladensteuerung ModbusAdresse ist anzupassen

define Rollo01_hoch ModbusCoil 1 32784
attr Rollo01_hoch IODev wago
attr Rollo01_hoch event-on-change-reading state
attr Rollo01_hoch group Taster
attr Rollo01_hoch room Rolladensteuerung
attr Rollo01_hoch webCmd statusRequest:toggle:on:off


define Rollo01_runter ModbusCoil 1 32785
attr Rollo01_runter IODev wago
attr Rollo01_runter event-on-change-reading state
attr Rollo01_runter group Taster
attr Rollo01_runter room Rolladensteuerung
attr Rollo01_runter webCmd statusRequest:toggle:on:off


#Ausgänge 1 und 2 für die Rolladensteuerung Modbus Adresse ist anzupassen

define Rollo1_hoch_out ModbusCoil 1 17
attr Rollo1_hoch_out IODev wago
attr Rollo1_hoch_out event-on-change-reading .*
attr Rollo1_hoch_out group Rolladen1
attr Rollo1_hoch_out room Rolladensteuerung

define Rollo1_runter_out ModbusCoil 1 18
attr Rollo1_runter_out IODev wago
attr Rollo1_runter_out event-on-change-reading .*
attr Rollo1_runter_out group Rolladen1
attr Rollo1_runter_out room Rolladensteuerung


####### Ab hier Dummies für hoch und runter
####################Rolladen1 ############################################
define Hoch_R1 dummy
attr Hoch_R1 group Rolladen1
attr Hoch_R1 icon control_arrow_upward
attr Hoch_R1 room Rolladensteuerung
attr Hoch_R1 webCmd on
define Hoch_R1_on notify Hoch_R1:on set Rollo01_hoch on-for-timer 3;; set Hoch_R1 off
attr Hoch_R1_on group Rolladen1
attr Hoch_R1_on room Rolladensteuerung


define Runter_R1 dummy
attr Runter_R1 group Rolladen1
attr Runter_R1 icon control_centr_arrow_down
attr Runter_R1 room Rolladensteuerung
attr Runter_R1 webCmd on
define Runter_R1_on notify Runter_R1:on set Rollo01_runter on-for-timer 3;; set Runter_R1 off
attr Runter_R1_on group Rolladen1
attr Runter_R1_on room Rolladensteuerung



Viel Erfolg.

Gruss Thomas

witschi87

#545
Grundsätzlich liegst du mit deiner Vermutung erst mal richtig: ich habe zwei Inputs für die Taster hoch und runter (die ich natürlich gleichermaßen für den modbus konfiguriert habe). Und zwei Outputs für den Rolladenmotor. Der läuft bei mir jedoch etwas anders: Wenn output 1 gesetzt ist, fährt er hoch. Wenn output 1 und 2 gesetzt sind, fährt er runter.

Im Anhang mal meine Funktionsbausteine.

Nun zu der Fhem Konfiguration:
Die Eingänge haben ein event-on-change-reading state, damit ich von "außen" den Status setzen/ändern kann, richtig?
Wofür definierst du die outputs? Die werden nirgends wieder genutzt, oder? Ich würde auch gerne nur den Taster simulieren (also nur die Inputs ansteuern), den Rest soll die Wago machen. Oder gehe ich damit falsch an die Sache?
Dann ist dort dein webcmd statusRequest - den kennt mein fhem nicht!?

Ansonsten klappt das super, danke. Der Dummy schaltet nun ein on-for-timer und somit bekommt die Wago für eine Sekunde einen Impuls aufs Input. Perfekt! Etappenziel 1 erreicht - Taster lassen sich realisieren. :-D

Das zweite Ziel wäre die Integration in Alexa. Denn ich habe nicht nur für die Jalousien, sondern auch für meine Lichtschalter Taster. Die gehen auf den Stromstoßschalter und schalten somit das Licht. Heißt aber, dass Alexa den Zustand an und aus nicht kennen kann. Zumindest nicht, wenn ich zwischendurch auch auf den Taster drücke.
Lässt sich nun auch in Alexa ein Taster realisieren? Dies gilt natürlich gleichermaßen für die Jalousien, wie auch für das Licht. Schön wäre natürlich, wenn ich am Ende sagen kann "fahre die Jalousie hoch/runter" und "mach das Licht an/aus".

Thomas Stark

Hallo,

freut mich das Du das ähnlich gelöst hats wie ich.
Nun zu Deinen Fragen
1. Die Outputs habe ich angelegt um synchron zu sein mit der Wago.
Sprich ich will sehen, was der Ausgang in der Wago macht. Dies lässt sich dann sehr schön in Fhem Tablet dartstellen.

2. Zu Alexa
Ich habe Alexa bei mir auch intergriert. Allerdings mache ich nicht viel mit Alexa
Es gibt im Netz sehr gute Anleitungen um Deine Alexa erstmal mit deiner Fhem bekannt zu machen.

https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa

Hier der Auszug aus meiner fhem.cfg
Damit kannst Du Alexa erstmal Übersetzungen beibringen für die Kommandos.
Also ein Antriggern der Dummies sollte somit kein Problem sein.
Ich selber schalte damit 3 verschiedene Lichter in der Küche ein und aus.
Wenn ich sage "Alexa schalte Licht Arbeitsplatte an" funktioniert das einwandfrei.
Wenn du Alexa fertig konfiguriert hast, musst du bei deinen Dummies jeweils einen Alexanamen als Attribut definieren.
Auf den kannst du dann  steuern mit Alexa.


define alexa alexa
attr alexa alexaFHEM-config ./alexa-fhem.cfg
attr alexa alexaFHEM-log ./log/alexa-%Y-%m.log
attr alexa alexaMapping #Characteristic=<name>=<value>,...\
On=verb=schalte,valueOn=an;;ein,valueOff=aus,valueToggle=um\
\
Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
Hue=verb=stelle,valuePrefix=auf,values=rot:0;;grün:128;;blau:200\
Hue=verb=färbe,values=rot:0;;grün:120;;blau:220\
\
Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER\
Saturation=verb=sättige,values=AMAZON.NUMBER\
\
TargetPosition=verb=mach,articles=den;;die,values=auf:100;;zu:0\
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad\
\
Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
#Weckzeit=verb=stelle,valuePrefix=auf;;für,values=AMAZON.TIME,valueSuffix=uhr
attr alexa alexaTypes #Type=<alias>[,<alias2>[,...]]\
light=licht,lampen\
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
attr alexa devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
attr alexa echoRooms #<deviceId>=<room>\

attr alexa fhemIntents #IntentName=<sample utterance>\
gutenMorgen=guten morgen\
guteNacht=gute nacht
attr alexa persons #<personId>=<name>\

attr alexa room Technik
attr alexa stateFormat alexaFHEM


Viel Erfolg

Gruss Thomas

fox-octi

Hi,

leider hab ich mit dem Modul auch ein Problem, ich habe 2 Wagos die ich in Fhem nutzen möchte.

Die erste funktioniert auch problemlos, die zweite leider nicht.

2021.04.19 06:57:50 4: RQUEUE: 1
2021.04.19 06:57:50 5: SimpleWrite [FA C9 00 00 00 06] 00 01 30 A8 00 08
2021.04.19 06:57:50 5: ModbusTCPServer_Parse: received [FA C9 00 00 00 04] 00 01 01 00
2021.04.19 06:57:50 5: wagoGarage: dispatch ModbusCoil:0:12460:1:1:0
2021.04.19 06:57:50 4: AddRQueue [FA CA 00 00 00 06] 00 01 00 00 00 08
2021.04.19 06:57:50 5: SimpleWrite [FA CA 00 00 00 06] 00 01 00 00 00 08
2021.04.19 06:57:50 4: AddRQueue [FA CB 00 00 00 06] 00 01 30 A8 00 08
2021.04.19 06:57:50 5: adding to RQUEUE - 1
2021.04.19 06:57:50 5: ModbusTCPServer_Parse: received [FA CA 00 00 00 04] 00 01 01 00
2021.04.19 06:57:50 5: wagoGarage: dispatch ModbusCoil:0:MX0.6:1:1:0
2021.04.19 06:57:50 2: ModbusCoil_Parse: invalid address 1 0 MX0.6
2021.04.19 06:57:50 2: ModbusCoil_Parse: invalid address 1 0 MX0.6
2021.04.19 06:57:50 3: wagoGarage: Unknown code ModbusCoil:0:MX0.6:1:1:0, help me!

Konfiguration:
DeviceName
172.16.218.5:502
FD
25
NAME
wagoGarage
NOTIFYDEV
global
NR
152
NTFY_ORDER
50-wagoGarage
PARTIAL
STATE
ok
TYPE
ModbusTCPServer
server
Wago 750-841
statistics
354 / 354 / 3562 / 4248
Readings
state
opened
2021-04-19 06:30:17
wagoGarage
room
Haus->Verwaltung->Wago
Attributes
combineReads
20:80
deleteattr
pollInterval
0.4
deleteattr
room
Haus->Verwaltung->Wago
deleteattr
serverType
Wago
deleteattr
verbose
3
deleteattr

Mir ist leider nicht klar, was ich bei der 2. Wago falsch mache, was ich bei der 1. richtig mache.

Würde mich über Hilfe freuen.

Gruß

Chris

fox-octi

Hi,

ich weiss nicht wirklich was ich falsch mache, per Symcon kann per Modbus abfragen und setzen der Merker, per Fhem leider nicht.
Habe auch mit einer neuen FHEM Instanz getestet, leider auch ohne Erfolg. Ich bekomme die WAGO 841 nicht zum laufen mit FHEM.

Gruß

ChrisD

Hallo,

Ist wagoGarage die SPS die nicht funktioniert ?

Wie sieht die Definition von MX0.6 aus ?

Grüße,

ChrisD

fox-octi

Hi Chris,

cool dass du hilfst..


define wagoGarage_presence PRESENCE lan-ping 172.16.218.5
attr wagoGarage_presence room Haus->Verwaltung->Wago

define wagoGarage ModbusTCPServer 172.16.218.5

attr wagoGarage combineReads 20:80
attr wagoGarage pollInterval 0.4
attr wagoGarage presenceLink wagoGarage_presence
attr wagoGarage room Haus->Verwaltung->Wago
attr wagoGarage serverType Wago
attr wagoGarage verbose 5


define Wago_M_Output_O_HolzLicht ModbusCoil wagoGarage MX33.5

attr Wago_M_Output_O_HolzLicht IODev wagoGarage
attr Wago_M_Output_O_HolzLicht event-on-change-reading .*
attr Wago_M_Output_O_HolzLicht room hidden
attr Wago_M_Output_O_HolzLicht timestamp-on-change-reading state
attr Wago_M_Output_O_HolzLicht verbose 5

define Wago_SW_M_Output_O_HolzLicht ModbusCoil wagoGarage MX33.6

attr Wago_SW_M_Output_O_HolzLicht IODev wagoGarage
attr Wago_SW_M_Output_O_HolzLicht event-on-change-reading .*
attr Wago_SW_M_Output_O_HolzLicht room Wago,hidden
attr Wago_SW_M_Output_O_HolzLicht timestamp-on-change-reading state
attr Wago_SW_M_Output_O_HolzLicht verbose 5



:::
Internals:
   CFGFN      ./wago.cfg
   DEF        172.16.218.5
   DeviceName 172.16.218.5:502
   FD         25
   FUUID      607da03b-f33f-5d0a-dbf4-1c9a0772bfa1b12e
   NAME       wagoGarage
   NOTIFYDEV  global
   NR         147
   NTFY_ORDER 50-wagoGarage
   PARTIAL   
   STATE      ok
   TYPE       ModbusTCPServer
   server     Wago 750-841
   statistics 111387 / 111387 / 1113890 / 1336644
   READINGS:
     2021-04-19 17:22:37   state           opened
   helper:
     delayNextRead 0
     delayNextWrite 0
     fc         1
     hd_tr_id   64100
     hd_unit_id 0
     lastFrame  SimpleWrite [FA 64 00 00 00 06] 00 01 00 00 00 08
     lastSimpleWrite �d
     last_fc    1
     last_hd_tr_id 64099
     presence   wagoGarage_presence
     seq        65000
     seqCoils   64101
     state      idle
     Wago:
       AI         0
       AO         0
       DI         8
       DIOffset   0
       DO         16
       DOOffset   0
       INFO_ITEM  841
       INFO_MAJOR 4
       INFO_MINOR 1
       INFO_REVISION 21
       INFO_SERIES 750
       initDone   1
       x          1
     combineReads:
       cfg:
         maxSize    80
         maxSpace   20
       coils:
         ARRAY(0x560cef56f390)
       data:
         64058:
           wagoGarage
           1
           0
           8
         64314:
           wagoGarage
           1
           0
           8
     statistics:
       bytesIn    1113890
       bytesOut   1336644
       pktIn      111387
       pktOut     111387
Attributes:
   combineReads 20:80
   pollInterval 0.4
   presenceLink wagoGarage_presence
   room       Haus->Verwaltung->Wago
   serverType Wago
   verbose    5

::::::::::::::
Internals:
   CFGFN      ./wago.cfg
   DEF        wagoGarage MX33.6
   FUUID      607da03b-f33f-5d0a-f94a-508b69071c78cfe8
   IODev      wagoGarage
   NAME       Wago_SW_M_Output_O_HolzLicht
   NR         154
   NTFY_ORDER 50-Wago_SW_M_Output_O_HolzLicht
   STATE      set_on
   TYPE       ModbusCoil
   lastUpdate Tue Apr 20 05:57:17 2021
   nextUpdate Tue Apr 20 05:57:17 2021
   READINGS:
     2021-04-19 16:49:41   state           set_on
   helper:
     addr       1 wagoGarage MX33.6
     address    MX33.6
     disableRegisterMapping 0
     lastUpdate 1618891037.39747
     nextUpdate 1618891037.79754
     nread      8
     readCmd    
     register   MX33.6
     registerType 1
     unitId     wagoGarage
     updateIntervall 0.1
Attributes:
   IODev      wagoGarage
   event-on-change-reading .*
   room       Wago,hidden
   timestamp-on-change-reading state
   verbose    5


Wago:
        M_Output_O_Pumpe AT %MX33.5 :BOOL; (*12292*)
   SW_M_Output_O_Pumpe AT %MX33.6 :BOOL; (*12293*)
   M_Output_O_HolzLicht AT %MX33.7 :BOOL; (*12294*)

Gruß

Chris

witschi87

Zitat von: Thomas Stark am 06 April 2021, 17:56:11
Hallo Christof,
ich gehe davon aus, das dein Funktionsbaustein in der Wago die Eingänge gegenseitig verriegelt, sodass sichergestellt ist, das Hoch und Runter zeitgleich nicht gesetzt werden können. Bei mir ist das so und zusätzlich wird immer mit dem gegengesetztem Eingang ein Stop ausgelöst.
Nun zu meiner Lösung in Fhem.
Du brauchst 3 Dinge um in FHEM alles aus der Wago Zeit nah abbilden zu können.
1. Pro Rolladen 2 Eingänge (Modbus)
2. Pro Rolladen 2 Ausgänge um zu zeigen was gerade aktiv ist
3. 2 Dummies pro Rolladen um die Eingänge zeitbehaftet zu steuern.

Die Modbusvariablen sind vom Typ bool und können mit on/off beschrieben werden.
Bei mir ist das ein 16Bit Array für 16 Eingänge. Diese könne dann bitweise gesetzt werden.
Gleiches gilt für die Ausgänge. Hier lese ich dann halt bitweise die Ausgänge.

Die Dummys lassen sich dann auch wunderbar über Fhem Tablet Widgets ansprechen.


Hier meine Auszüge

#Eingänge  1 und 2 für die Rolladensteuerung ModbusAdresse ist anzupassen

define Rollo01_hoch ModbusCoil 1 32784
attr Rollo01_hoch IODev wago
attr Rollo01_hoch event-on-change-reading state
attr Rollo01_hoch group Taster
attr Rollo01_hoch room Rolladensteuerung
attr Rollo01_hoch webCmd statusRequest:toggle:on:off


define Rollo01_runter ModbusCoil 1 32785
attr Rollo01_runter IODev wago
attr Rollo01_runter event-on-change-reading state
attr Rollo01_runter group Taster
attr Rollo01_runter room Rolladensteuerung
attr Rollo01_runter webCmd statusRequest:toggle:on:off


#Ausgänge 1 und 2 für die Rolladensteuerung Modbus Adresse ist anzupassen

define Rollo1_hoch_out ModbusCoil 1 17
attr Rollo1_hoch_out IODev wago
attr Rollo1_hoch_out event-on-change-reading .*
attr Rollo1_hoch_out group Rolladen1
attr Rollo1_hoch_out room Rolladensteuerung

define Rollo1_runter_out ModbusCoil 1 18
attr Rollo1_runter_out IODev wago
attr Rollo1_runter_out event-on-change-reading .*
attr Rollo1_runter_out group Rolladen1
attr Rollo1_runter_out room Rolladensteuerung


####### Ab hier Dummies für hoch und runter
####################Rolladen1 ############################################
define Hoch_R1 dummy
attr Hoch_R1 group Rolladen1
attr Hoch_R1 icon control_arrow_upward
attr Hoch_R1 room Rolladensteuerung
attr Hoch_R1 webCmd on
define Hoch_R1_on notify Hoch_R1:on set Rollo01_hoch on-for-timer 3;; set Hoch_R1 off
attr Hoch_R1_on group Rolladen1
attr Hoch_R1_on room Rolladensteuerung


define Runter_R1 dummy
attr Runter_R1 group Rolladen1
attr Runter_R1 icon control_centr_arrow_down
attr Runter_R1 room Rolladensteuerung
attr Runter_R1 webCmd on
define Runter_R1_on notify Runter_R1:on set Rollo01_runter on-for-timer 3;; set Runter_R1 off
attr Runter_R1_on group Rolladen1
attr Runter_R1_on room Rolladensteuerung



Viel Erfolg.

Gruss Thomas

Das war schon mal Gold wert! Damit bekomme ich Taster realisiert, großartig!
Kann ich mir damit nun auch ein Dummy für meine Lampen anlegen? Sodass ich in FHEM sehe, ob mein Licht an oder aus ist? Meine Idee war initial davon auszugehen, dass das Licht aus ist und dann den Output zu beobachten. Wenn der geschaltet wird, toggle ich den Zustand des Lichts. Dann weiß auch Alexa, ob das Licht an oder aus ist. Geht das?

ChrisD

Hallo,

@fox-octi: Ich denke dass die Definition der Coils nicht richtig ist:
ZitatDEF wagoGarage MX33.6

Bei der Definition muss entweder eine Coiladresse oder alternativ der Begriff 'wago' mit einer SPS-Adresse verwendet werden. Es darf nicht der Name der SPS angegeben werden. Die SPS wird über das Attribut IODev festgelegt.

Kannst du versuchen die Definitionen zu ändern ?

defmod Wago_M_Output_O_HolzLicht ModbusCoil wago MX33.5
defmod Wago_SW_M_Output_O_HolzLicht ModbusCoil wago MX33.6


Grüße,

ChrisD

fox-octi

Hi,

erstmal totales Sorry, dass ich erst zu spät geantwortet habe.
Du hattest Recht :)  Konnte es soeben testen.

falsch:define WagoGarage_SW_M_Output_O_Sprenger1 ModbusCoil wagogarage MX2.3
richtig:define WagoGarage_SW_M_Output_O_Sprenger1 ModbusCoil wago MX2.3

Danke dir für die Hilfe, hab es einfach nicht gesehen und dabei sind Stunden drauf gegangen. ....aua...

Gruß

Chris

der-Lolo

Hallo Wago User,
habt ihr kürzlich ein update gemacht und so wie ich jetzt Probleme..?
Es äussert sich durch Time Out einträgen im log File..

2021.05.28 15:09:42 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB DA 00 00 00 06] 00 01 30 00 00 48
2021.05.28 15:03:52 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA F0 00 00 00 06] 00 01 30 00 00 48
2021.05.28 14:49:51 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB BE 00 00 00 06] 00 01 30 00 00 48
2021.05.28 14:44:00 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA A4 00 00 00 06] 00 01 00 18 00 08
2021.05.28 14:42:50 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 12 00 00 00 06] 00 01 30 00 00 48
2021.05.28 14:27:39 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 2D 00 00 00 06] 00 01 30 00 00 48
2021.05.28 14:18:18 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 34 00 00 00 06] 00 01 00 18 00 08
2021.05.28 14:17:08 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA A7 00 00 00 06] 00 01 30 00 00 48
2021.05.28 14:07:47 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB E7 00 00 00 06] 00 01 02 40 00 08
2021.05.28 14:00:47 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 28 00 00 00 06] 00 01 30 00 00 48
2021.05.28 13:52:36 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 06 00 00 00 06] 00 01 00 18 00 08
2021.05.28 13:49:06 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 1C 00 00 00 06] 00 01 30 00 00 48
2021.05.28 13:45:35 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 60 00 00 00 06] 00 01 02 40 00 08
2021.05.28 13:28:04 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 53 00 00 00 06] 00 01 00 18 00 08
2021.05.28 13:22:14 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 72 00 00 00 06] 00 01 30 50 00 18
2021.05.28 13:17:34 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB D2 00 00 00 06] 00 01 00 18 00 08
2021.05.28 13:15:14 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA A9 00 00 00 06] 00 01 00 40 00 10
2021.05.28 13:03:33 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 9A 00 00 00 06] 00 01 30 00 00 48
2021.05.28 13:00:03 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA D2 00 00 00 06] 00 01 00 18 00 08
2021.05.28 12:55:23 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 81 00 00 00 06] 00 01 30 50 00 18
2021.05.28 12:48:22 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA C6 00 00 00 06] 00 01 00 18 00 08
2021.05.28 12:47:12 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 3B 00 00 00 06] 00 01 00 18 00 08
2021.05.28 12:44:52 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 13 00 00 00 06] 00 01 30 00 00 48
2021.05.28 12:41:22 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 53 00 00 00 06] 00 01 30 00 00 48
2021.05.28 12:23:51 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 14 00 00 00 06] 00 01 00 18 00 08
2021.05.28 12:20:20 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 57 00 00 00 06] 00 01 30 00 00 48
2021.05.28 12:11:00 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 53 00 00 00 06] 00 01 30 50 00 18
2021.05.28 12:06:20 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA F0 00 00 00 06] 00 01 00 18 00 08
2021.05.28 12:02:49 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 2C 00 00 00 06] 00 01 00 40 00 10
2021.05.28 11:44:08 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 95 00 00 00 06] 00 01 00 18 00 08
2021.05.28 11:37:07 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB E3 00 00 00 06] 00 01 00 18 00 08
2021.05.28 11:23:07 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 99 00 00 00 06] 00 01 00 18 00 08
2021.05.28 11:14:57 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 7E 00 00 00 06] 00 01 30 50 00 18
2021.05.28 11:10:17 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB DA 00 00 00 06] 00 01 00 40 00 10
2021.05.28 11:05:36 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 84 00 00 00 06] 00 01 00 18 00 08
2021.05.28 11:04:26 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA EA 00 00 00 06] 00 01 00 18 00 08
2021.05.28 11:03:16 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 55 00 00 00 06] 00 01 00 18 00 08
2021.05.28 10:56:15 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 98 00 00 00 06] 00 01 30 50 00 18
2021.05.28 10:55:05 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB F4 00 00 00 06] 00 01 00 18 00 08
2021.05.28 10:39:54 3: ModbusTCPServer_Timeout, request: SimpleWrite [FA 09 00 00 00 06] 00 01 30 00 00 48
2021.05.28 10:23:34 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB 77 00 00 00 06] 00 01 00 18 00 08
2021.05.28 10:01:22 3: ModbusTCPServer_Timeout, request: SimpleWrite [FB E0 00 00 00 06] 00 01 00 18 00 08


Ein Problem was ich ausserdem erkenne ist das beim zuweisen der IO sich etwas geändert hat.
Bei einem FHEM neustart habe ich jedes Coil z.b. 3 mal mit dem Controller als IODev.

2021.05.27 21:16:38 1: IO: PSchlafbereichRGB WagoController
2021.05.27 21:16:38 3: PSchlafbereichRGB: I/O device is WagoController
2021.05.27 21:16:38 1: IO: SchlafbereichRGB WagoController
2021.05.27 21:16:38 3: SchlafbereichRGB: I/O device is WagoController
2021.05.27 21:16:38 1: IO: SchlafzimmerRGB WagoController
2021.05.27 21:16:38 3: SchlafzimmerRGB: I/O device is WagoController
2021.05.27 21:16:38 1: IO: Ankleide WagoController
2021.05.27 21:16:38 3: Ankleide: I/O device is WagoController
2021.05.27 21:16:38 1: IO: PAnkleide WagoController
2021.05.27 21:16:38 3: PAnkleide: I/O device is WagoController
2021.05.27 21:16:38 1: IO: Ankleidebereich WagoController
2021.05.27 21:16:38 3: Ankleidebereich: I/O device is WagoController
2021.05.27 21:16:38 1: IO: PSchlafbereich WagoController
2021.05.27 21:16:38 3: PSchlafbereich: I/O device is WagoController
2021.05.27 21:16:38 1: IO: Schlafbereich WagoController
2021.05.27 21:16:38 3: Schlafbereich: I/O device is WagoController
2021.05.27 21:16:38 1: IO: Schlafzimmer WagoController
2021.05.27 21:16:38 3: Schlafzimmer: I/O device is WagoController


2021.05.27 21:16:45 1: IO: SchlafzimmerRGB WagoController
2021.05.27 21:16:45 1: IO: Schlafzimmer WagoController
2021.05.27 21:16:45 1: IO: SchlafbereichRGB WagoController
2021.05.27 21:16:45 1: IO: Schlafbereich WagoController
2021.05.27 21:16:45 1: IO: PSchlafbereichRGB WagoController
2021.05.27 21:16:45 1: IO: PSchlafbereich WagoController


Funktion ist unverändert ok - FHEM web ist gefühlt etwas träger geworden, ein restore des updates hat mir leider nicht geholfen.

Hat jemand eine Idee, kann jemand Probleme bestätigen..?