easy-forum

Deutsch - Software => Kommunikation => Thema gestartet von: Toru am April 22, 2020, 17:51:43 Nachmittag

Titel: EasyE4 -> Modbus -> IOBroker
Beitrag von: Toru am April 22, 2020, 17:51:43 Nachmittag
Hallo Zusammen,

ich bin verzweifelt daran zu versuchen meine EasyE4 über ModBus TCP mit IOBroker zu verbinden.

Der Modbus funktioniert generell. Eine aktive Verbindung zu Codesys habe ich bereits schon aufgebaut und funktioniert auch.

Ich bekomme es nicht hin, dass der BUS (TCP) zwischen der Easy und IOBroker läuft. Kurze Verbindung besteht, dann wird taucht in der LOG der Fehler auf, dass sich das Device in Error befindet...

Wenn ich jetzt hingehe und mein Codesys starte, dann läuft der BUS zwischen Easy und Codesys einwandfrei...

-> Hat schon jemand Erfahrung damit gemacht?
Titel: Antw:EasyE3 -> Modbus -> IOBroker
Beitrag von: CiesleRa am April 23, 2020, 12:55:49 Nachmittag
Hi Toru,
ich muß gestehen, dass ich mich mit IOBroker noch nicht so auskenne. Deshalb eine vielleicht nicht wirklich kluge Frage.
Hat der Modbus Adapter im IOBroker auch die Client (Master) Funktionalität? Die easyE4 kann ja "nur" Modbus-Server (Slave).

Viele Grüße
Ralf
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: Toru am April 24, 2020, 17:29:48 Nachmittag
Hallo,

...warum keine Kluge frage? - ich hab gedacht ich hab es ins allgemeine Forum gestellt und keine "Direkt-Anfrage" - ich bin halt hier auch neu...

ja IOBroker hat auch Master und Slave Funktion. Ich habe mich dort auch schon umgesehen/hört, aber noch nicht auf einen Lösungsansatz gekommen...

Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: Eulhofer am August 21, 2020, 19:12:49 Nachmittag
Hallo,

...warum keine Kluge frage? - ich hab gedacht ich hab es ins allgemeine Forum gestellt und keine "Direkt-Anfrage" - ich bin halt hier auch neu...

ja IOBroker hat auch Master und Slave Funktion. Ich habe mich dort auch schon umgesehen/hört, aber noch nicht auf einen Lösungsansatz gekommen...

Hallo Tori,

Ich glaube CiesleRa meinte, dass SEINE folgende Frage (nach Master) vielleicht nicht besonders klug sei - und nicht deine Frage.

Egal... - bist du denn weiter gekommen? Kannst Du via IOBroker mit der Easy reden?

Ich habe einige Hausfunktionen (Heizung, Solar, Regenwasser etc) via EasyE4 realisiert und setze für Beleuchtung auf "Smarte" Lösungen. Nun würde ich gerne ein paar "Sensor- und Entscheidungswerte" der Easy für die Steuerung der Smartrelais nutzen und umgekehrt ein paar Statusmeldungen der Smartgeräte an die Easy übermitteln.

Und jetzt schwirren mir Sachen wie IFTTT, MQTT, IOBroker, openHAB, FHEM, HTTP-Requests um die Ohren....
Wobei IOBroker der erste "gemeinsame Begriff" ist, den ich in beiden Welten gefunden habe....

Wie ist bei Dir der Stand der Dinge?

Viele Grüße,
Wolfgang
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: sweet am September 23, 2020, 22:06:23 Nachmittag
Da klinke ich mich jetzt auch Mal ein.
Ich bin gerade am Easy "lernen" für mein zukünftiges Häuschen.
Ich möchte gern gewisse Dinge per Easy steuern. Das klappt auch schon so wie ich mir das vorstelle. Nun fehlt nur noch die smarte Komponente. Dafür habe ich mich wie Ihr für ioBroker entschieden. Die Verbindung steht, wird mir also in ioBroker als grün angezeigt. Weiter weiß ich aber leider nicht und habe auch im Netz kein Tutorial dazu gefunden wie ich die Ein/Ausgänge bzw Merker fernsteuern kann.
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: Eulhofer am September 30, 2020, 09:55:26 Vormittag
Nun fehlt nur noch die smarte Komponente. Dafür habe ich mich wie Ihr für ioBroker entschieden. Die Verbindung steht, wird mir also in ioBroker als grün angezeigt. Weiter weiß ich aber leider nicht und habe auch im Netz kein Tutorial dazu gefunden wie ich die Ein/Ausgänge bzw Merker fernsteuern kann.

Hallo,

wenn Du hier unter NodeRed / Node Red suchst, findest Du prima aufbereitete Informationen die easyE4 smart zu machen.

Natürlich geht das auch "nur" über den ioBroker - ist aber wohl ein Stück Arbeit (welche ich mir als "Smart"anfänger auch nicht zutraue).
Am besten den NodeRed-Adapter im ioBroker installieren und dann dort die EasyE4-Nodes. Das funktioniert super und tatsächlich "easy".
Hier im Forum gibts wie gesagt gute Infos zum Download und ich habe auch frisch noch ein paar Infos hinzugefügt, die meine Anfängerschwierigkeiten beschreiben.

Viel Erfolg und viele Grüße,
Wolfgang
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: platin am März 28, 2021, 07:31:42 Vormittag
Hallo Zusammen,

ich bin verzweifelt daran zu versuchen meine EasyE4 über ModBus TCP mit IOBroker zu verbinden.

Der Modbus funktioniert generell. Eine aktive Verbindung zu Codesys habe ich bereits schon aufgebaut und funktioniert auch.

Ich bekomme es nicht hin, dass der BUS (TCP) zwischen der Easy und IOBroker läuft. Kurze Verbindung besteht, dann wird taucht in der LOG der Fehler auf, dass sich das Device in Error befindet...

Wenn ich jetzt hingehe und mein Codesys starte, dann läuft der BUS zwischen Easy und Codesys einwandfrei...

-> Hat schon jemand Erfahrung damit gemacht?

Habe das selbe Problem. Hast du schon eine Lösung gefunden?
Ohne Nodered!
Danke
Hannes
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: CiesleRa am März 28, 2021, 15:31:23 Nachmittag
Hallo zusammen,
ich habe die Modbus Kommunikation zu IoBroker mal getestet.
Mit den Einstellungen, die Ihr in den Bildern im Anhang seht, funktionierte die Kommunikation sehr gut. :)
Die passenden Adressen findet Ihr in der easySoft 7 Hilfe unter dem Thema Modbus-TCP
Ich hoffe, ich kann Euch damit helfen und ihr bekommt es auch hin.

Viele Grüße
Ralf
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: platin am März 28, 2021, 19:28:43 Nachmittag
Ich kanns nicht fassen, der Hacken mit den 16 Bit wars!

Vielen, vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Hannes
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: platin am April 16, 2021, 01:04:36 Vormittag
Ich möchte euch meine Erfahrungen nicht vorenthalten:
Eingänge des Easy werden angezeigt  :)
Ausgänge werden Angezeigt  :)
Steuern kann man Merker im Easy, das ist aber nicht so einfach  :o
Die ersten 16 (?) Merker hören im Modbus-Adapter unter Holding Registers auf die Adresse 1001
Unter Objekte - modbus.X - holdingRegisters werden die dann mit EINER 0 angezeigt
Merker M01 = 1
M02 = 2
M03 = 4
M04 = 16  usw.

Wird eine 0 gesendet, sind alle Merker aus
Wird eine 1 gesendet, ist Merker 1 ein
Wird 5 gesendet ist Merker 1 und 4 ein
Sendet man zu 5 eine 16, schalte alles aus und 16 ist an

Um in Vis die Merker zu schalten, lege ich 2 Buttons pro Merker an. EIN und AUS.
In Blockly erstelle ich ein Skript z.B. lese Wert von holdingregisters und füge 4 hinzu um M03 ein zu schalten
Um M03 aus zu schalten lese Wert von holdingregisters und ziehe 4 ab

Das ganze, für jeden Button, den ich brauche.

Wenn jemand eine einfachere Lösung hat, nur her damit  :D

Schöne Grüße
Hannes
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: Peterfido am April 16, 2021, 13:12:46 Nachmittag
Hallo,

Das ist völlig normal. Modbus sendet Word, also 16 Bit am Stück. Daher nutze ich lieber Node Red mit den Easy Nodes von Eaton.
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: CiesleRa am April 16, 2021, 13:28:36 Nachmittag
Hallo Hannes,
versuche es doch einmal mit einer Maskierung. Damit kann man aus einem Merkerwort ein Bit herausfiltern und sehen, ob
es 0 oder 1 hat.
Die Bilder zeigen einen kleinen Anwenderfunktionsbaustein den man schreibt und den Aufruf im Hauptprogramm.
In dem Beispiel wird abgefragt, ob das Bit 3 in dem Merkerwort 1 ist.

Gruß Ralf
Titel: Antw:EasyE4 -> Modbus -> IOBroker
Beitrag von: weiss_nix am April 18, 2021, 07:34:27 Vormittag
Hallo Hannes,
die Maskierung kannst du mit BV (boolsche Verknüpfung) ebenfalls lösen. Das 3. Bit hat die Wertigkeit "4" und wenn der Ausgang ZE 0 ist, dann ist das 3. Bit gesetzt.
Wie im Anhang ersichtlich ist das 3. Bit nicht gesetzt.

Wenn du die Userfunktion verwendest, könntest du den Code wie folgt schreiben um z.B. Laufzeitfehler zu verhindern ...
// IA01 nach MD01 zuweisen (32 Bit prüfbar)
MD01 := IA01;
// funktioniert auch mit MB und MW ohne Änderung
// es sind dann halt nur 8 bzw. 16 Bit auswertbar


// Prüfen der Bitgrenzen um Laufzeitfehler zu verhindern,
// wenn Bitnummer gültig dem Ausgang den Status zuweisen
if IA02 >= 1 and IA02 <= 32 then
Q01 := M[IA02];
else
Q01 := false;
end_if;