Neues Modul: CanOverEthernet

Begonnen von delMar, 19 Januar 2019, 21:29:47

Vorheriges Thema - Nächstes Thema

cobra112

Hi
Wenn ich einen Wert sende funktioniert es super sende ich zwei werte an einen Konten wird mal Kanal 1 mal Kanal 2 übertragen.

Mit freundlichen Grüßen

delMar

Zitat von: cobra112 am 09 Oktober 2019, 14:09:20
Wenn ich einen Wert sende funktioniert es super sende ich zwei werte an einen Konten wird mal Kanal 1 mal Kanal 2 übertragen.
Richtig.
Bei digitalen Werten werden immer alle 16 (oder 32?) Werte auf einmal (dh in einer UDP Übertragung) übertragen.
Das heißt, wenn du nur einen dieser Werte aktualisierst, wird für die anderen wieder 0 übertragen.
Hier empfehle ich, zB alle Werte in einen dummy zu schreiben und sich im Notify auf diese zu beziehen.

Bei den analogen Werten werden immer vier Werte im Paket übertragen.
Dh, wenn du die analogen Kanäle 1 und 5 verwendest, dann werden die sich nicht gegenseitig überschreiben, weil es sich um zwei Pakete handelt.
Im ersten Paket würden die Kanäle 2-4 mit 0 überschrieben werden.
Im zweiten Paket würden die Kanäle 6-8 mit 0 überschrieben werden.
Wenn du also nur 1 und 5 nutzt, wird nix überschrieben.

Ich hoffe, ich konnte das verständlich formulieren.

Nun stellt sich die Frage, ob das Modul vorher gesendete Werte einfach speichern und immer wieder senden soll, damit nix überschrieben wird.
Die Antwort darauf habe ich noch nicht gefunden

schöne Grüße
Martin


Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

cobra112

#47
Hi

Am besten dann alle werte in ein Dummy schreiben und dann alles auf einmal Übertragen.
Wie bekomme ich das hin?

Hab es Hinbekommen:
UVR_Temperaturen:.* set cmi sendDataAnalog 192.168.0.130 20 1={(ReadingsVal("UVR_Temperaturen","Bad_Ist","99"))};;1 2={(ReadingsVal("UVR_Temperaturen","Bad_Soll","99"))};;1 3={(ReadingsVal("UVR_Temperaturen","Dach_Ist","99"))};;1 4={(ReadingsVal("UVR_Temperaturen","Dach_Soll","99"))};;1 5={(ReadingsVal("UVR_Temperaturen","Haus_Ist","99"))};;1 6={(ReadingsVal("UVR_Temperaturen","Haus_Soll","99"))};;1

cobra112

Zitat von: delmar am 09 Oktober 2019, 14:46:08
Richtig.
Bei digitalen Werten werden immer alle 16 (oder 32?) Werte auf einmal (dh in einer UDP Übertragung) übertragen.
Das heißt, wenn du nur einen dieser Werte aktualisierst, wird für die anderen wieder 0 übertragen.
Hier empfehle ich, zB alle Werte in einen dummy zu schreiben und sich im Notify auf diese zu beziehen.

Bei den analogen Werten werden immer vier Werte im Paket übertragen.
Dh, wenn du die analogen Kanäle 1 und 5 verwendest, dann werden die sich nicht gegenseitig überschreiben, weil es sich um zwei Pakete handelt.
Im ersten Paket würden die Kanäle 2-4 mit 0 überschrieben werden.
Im zweiten Paket würden die Kanäle 6-8 mit 0 überschrieben werden.
Wenn du also nur 1 und 5 nutzt, wird nix überschrieben.

Ich hoffe, ich konnte das verständlich formulieren.

Nun stellt sich die Frage, ob das Modul vorher gesendete Werte einfach speichern und immer wieder senden soll, damit nix überschrieben wird.
Die Antwort darauf habe ich noch nicht gefunden

schöne Grüße
Martin

Beim Empfangen von Daten hab ich das selbe Problem, wie kann man einstellen das er die alten werte behält?

MFG
Stefan

delMar

Zitat von: cobra112 am 09 Oktober 2019, 20:56:31
Beim Empfangen von Daten hab ich das selbe Problem, wie kann man einstellen das er die alten werte behält?
Wer sendet Daten an wen? UVR an FHEM oder umgekehrt?
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

cobra112

Zitat von: delmar am 09 Oktober 2019, 21:07:45
Wer sendet Daten an wen? UVR an FHEM oder umgekehrt?

C.M.I. an Fhem

delMar

Ich habe gestern noch die aktuellste Version inklusive Doku-Update ins SVN gespusht.

Zitat von: cobra112 am 09 Oktober 2019, 22:50:35
C.M.I. an Fhem
Kannst du bitte Verbose vom COE_Node auf 4 stellen und den Log Output dann hier ins Forum stellen?
Je nachdem, was dort drin steht, werden dann wahrscheinlich deine readingsConfigAnalog noch interessant sein und auch, wie du die COE-Ausgänge am CMI konfiguriert hast.

Danke!
schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

cobra112

Hi

Hat sich erledigt. Nach Neustart der C.M.I. geht alles.

Bualicher

Ich habe einen Fehler im log, welcher mir gerade ziemliche Probleme bereitet, bzw. FHEM in bestimmten Situationen abstürzen lässt:

019.10.30 17:53:54 3: CanOverEthernet (CMI) - Define done ... module=CanOverEthernet
Can't call method "fileno" on an undefined value at ./FHEM/70_CanOverEthernet.pm line 76.


Wie bekomme ich den Fehler weg?

delMar

Zitat von: Bualicher am 30 Oktober 2019, 18:09:25
Ich habe einen Fehler im log, welcher mir gerade ziemliche Probleme bereitet, bzw. FHEM in bestimmten Situationen abstürzen lässt:

019.10.30 17:53:54 3: CanOverEthernet (CMI) - Define done ... module=CanOverEthernet
Can't call method "fileno" on an undefined value at ./FHEM/70_CanOverEthernet.pm line 76.

Hi,
meine Vermutung ist, dass schon ein anderer Prozess den selben Port geöffnet hat.
Entweder, du hast eine vorige Instanz von FHEM selber noch als Zombie-Prozess laufen, oder ein anderes Script, dass auf 5441 horcht, oder du hast vielleicht zwei CanOverEthernet devices definiert?

Wenn du fhem stoppst und folgenden Befehl ausführst, solltest du sehen, wer sonst noch auf 5441 horcht:

sudo lsof -i tcp:5441


Hoffe, das hilft
schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

silvkat

#55
Hallo Martin,

vielen Dank für die Arbeit, die du in dieses Modul steckst. Für alle, die FHEM im Docker-Container laufen lassen, gleich der Hinweis, dass bei der Port-Freigabe unbedingt  "5441:5441/udp"  stehen muss, also mit /udp, das war bei mir das Problem, warum es lange nicht funktioniert hat.
Ich kann jetzt Werte problemlos vom CMI empfangen, aber auch analoge Werte senden. Beim senden von digitalen Werten z.B. mittels "set coe sendDataDigital 192.168.0.67 50 1=1" stürzt FHEM sofort ab. Im LOG steht:
Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/70_CanOverEthernet.pmline 266.

Vielleicht kannst du mir hier helfen.

Danke Silvio

delMar

Zitat von: silvkat am 31 Oktober 2019, 13:57:54
Für alle, die FHEM im Docker-Container laufen lassen, gleich der Hinweis, dass bei der Port-Freigabe unbedingt  "5441:5441/udp"  stehen muss, also mit /udp, das war bei mir das Problem, warum es lange nicht funktioniert hat.
Richtig, danke für die Anmerkung. Ich kann bei Gelegenheit das Modul so erweitern, dass auch andere Ports verwendet werden können. Ist notiert.

Zitat von: silvkat am 31 Oktober 2019, 13:57:54
Ich kann jetzt Werte problemlos vom CMI empfangen, aber auch analoge Werte senden. Beim senden von digitalen Werten z.B. mittels "set coe sendDataDigital 192.168.0.67 50 1=1" stürzt FHEM sofort ab. Im LOG steht:
Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./FHEM/70_CanOverEthernet.pmline 266.
Tatsächlich. Sorry, das hatte schon funktioniert, dürfte später wieder kaputt gegangen sein.
Ist auch notiert, wird natürlich asap repariert. Kann ich aber noch nicht genau sagen, ob 1 Tag oder 1 Woche...

schöne Grüße
Martin


Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

delMar

Zitat von: delmar am 31 Oktober 2019, 14:31:37
Beim senden von digitalen Werten z.B. mittels "set coe sendDataDigital 192.168.0.67 50 1=1" stürzt FHEM sofort ab.
Fix ist gepusht, sollte morgen übers Update verfügbar sein.

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

silvkat

Danke,

hab´s eben probiert und es geht wie im Wiki beschrieben. Super.


chunter1

Erst mal Vielen Dank an delMar für das Modul! ;)
Werde in Kürze ebenfalls stolzer Besitzer einer UVR16x2 sein und würde gerne wissen, ob man von zwei unterschiedlichen FHEM Instanzen auf eine C.M.I. zugreifen kann oder ob man den Umweg via FHEM2FHEM gehen muss?