PLCBUS ansteuern

Begonnen von eddi79, 26 Mai 2015, 12:35:28

Vorheriges Thema - Nächstes Thema

eddi79

Hab jetzt nochmals etwas getestet indem ich bei set on cmd {chr(64)} einsetzte. Dann sendet er das @ zeichen wandelt also meinen Wert in das Zeichen um. Ich glaube das könnte der Weg (zumindest in die richtige Richtung sein) sein.
Was ich nicht hinbekomme ist chr(64), chr(66) ... also eine Reihe von zeichen zu senden. Hab überlegt pack(chr(64),chr(66)) zu machen, wobei soweit ich das verstehe pack ja nichts zurückgibt, sondern  ich schreiben müsste:   $variable=pack(chr(64), chr(65))    Wobei die Variable ja dann wieder nicht von ECMD gesendet wird.
Irgendwie blick ich das noch nicht so wirklich... :-(

Schönen Sonntag
Markus

eddi79

#16
Jetzt hab ich es geschafft mehrere chr() zu senden Ergebnis:
Log:
Cmd: >set plcbus on<
2015.06.28 17:02:29 5: ECMDDevice: Analyze command >{chr(2).chr(0).chr(255).chr(2).chr(99).chr(100).chr(0).chr(3)}<
2015.06.28 17:02:29 5: myplc: command split into 3 parts.
2015.06.28 17:02:29 5: myplc: sending command "\002"
2015.06.28 17:02:29 5: myplc: write "\002"
2015.06.28 17:02:29 5: SW: 02
2015.06.28 17:02:29 5: myplc: sending command "�\002cd"
2015.06.28 17:02:29 5: myplc: write "�\002cd"
2015.06.28 17:02:29 5: SW: ff026364
2015.06.28 17:02:29 5: myplc: sending command "\003"
2015.06.28 17:02:29 5: myplc: write "\003"
2015.06.28 17:02:29 5: SW: 03
2015.06.28 17:02:29 5: Triggering plcbus (1 changes)

Wieso splittet ECMD das Kommando in drei Teile ?

Mein Modem reagiert natürlich nicht...

Für heute geb ich auf :-(

LG
Markus

eddi79

Nachdem ich in der 66_ECMD.pm den Seperator \000 durch \063 ersetzt habe. (was vermutlich nicht besonders schlau ist, aber jetzt mal funktioniert) Wird der String am Stück gesendet und das Modem reagiert wie gewünscht. Juhuuuuuu !!
Die eigentliche Arbeit kommt erst noch, aber zumindest ist das mal ein Anfang.

Dennoch ein Frage. Wie kann man eine Variable §zeichen an set on cmd {} übergeben ? set on cmd {§zeichen} geht nicht... :-(

Danke erst mal für die Hilfe.

Markus

Dr. Boris Neubert

Stichwort Parameter, siehe Commandref
bn
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

eddi79

Hallo zusammen,

erst mal danke für die Hilfe hier.
Im Moment funktioniert alles mit ECMD soweit... nur der RequestSperator - also das Aufteilen der Nachricht wenn diese ein bestimmtes Zeichen enthält macht mir Probleme. :-(
Kann man dies irgendwie ganz abschalten ? (ggf. eine Änderung in der 66_ECMD.pm  - nur ist diese zu komplex für mich :-( ?  (Hier habe ich zwar meinen eigenen Seperator eingesetzt - allerdings finde ich kein Zeichen, welches in keiner der Nachrichten vorkommt). Somit wird immer wieder eine Nachricht getrennt und mein Modem kann sie nicht entziffern.

Wäre super wenn hier jemand einen Tip hätte wie ich diese (sicher für andere Zwecke sinnvolle) Funktion von ECMD abschalten könnte.

Danke
Markus

Dr. Boris Neubert

Hallo Markus,

man kann de RequestSeparator nicht abschalten. Das ist eine Lücke im ECMD.

Ich werde das in der nächsten Version wie folgt ändern:
- Wenn das Attribut RequestSeparator nicht gesetzt ist, findet keine Separierung des Requests statt.
- Standardmäßig wird beim Define das Attribut auf \000 gesetzt (Abwärtskompatibilität).
- deleteattr löscht es dann, wenn man es nicht haben will.

Du kannst in der Zwischenzeit requestSeparator auf eine Zeichenfolge setzen, die wahrscheinlich nie in Deiner Sendung vorkommt, z.B.

attr DeinECMD requestSeparator IchkommenieineinerSendungvor

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Hallo Markus,

kannst Du bitte die beigefügte Version von ECMD bei Dir testen?

Wenn Du das Attribut requestSeparator mit deleteattr explizit löschst, wird Dein Request nicht mehr aufgetrennt.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

kermitthefrog

Hallo,
läuft PLCBus Variante denn nun umfangreich, d.h. auch mit Empfang/Feedback vom Aktor?
Ich überlege auf PLC Bus umzustellen.

eddi79

Hallo,
sorry für die lange Abwesenheit :-( Komme einfach kaum zu was im Moment. PLC-Bus funktioniert sehr gut über FHEM. Nur die Antworten der Module kann ich noch nicht auswerten - was wohl an mir liegt (aber da diese zu 99% zuverlässig schalten, kann ich erst mal damit leben).
Die geänderte ECMD Version hatte ich ganz übersehen - muss ich noch testen. Trau mir nur im Moment nochts umstellen, da alles soweit gut läuft -  mach ich aber sobald es geht (bzw. ich den Mut dazu habe) :-).

LG
Markus