Autor Thema: Neue Versionen und Support zum Modbus-Modul  (Gelesen 154459 mal)

Offline claudio

  • New Member
  • *
  • Beiträge: 45
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #810 am: 03 August 2021, 22:13:00 »
Hello Claude,

why don't you set fhem globally to verbose 5 and then watch the log.
If fhem does nothing else as slave, there should be no activity in the log while no data is received.
This should explain what's happening ...

regards,
   Stefan

Hi Stefan

Excuse me for the delay, I was on holidays  8)
I've put fhem to verbose 4 globally to observe activity, there is some, but stopping the modules causing them (gsmsms, wol) them doesn't change anything for the high cpu usage I see in modbus polling. When modbus polling is disabled, there is between 0.3 and ~ 1.3 % CPU used. As soon as modbus poll is enabled, cpu goes between 10 and 14 % CPU constantly. The test was done as modbus master.

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #811 am: 09 August 2021, 18:34:37 »
Hello Claude,

I'm not sure that we can decrease the cpu load below the 10 to 14 percent that you observe right now but there are a few things left that we can try to narrow down the the main cause of the load.

If I understood you correct, you already tried to let another master query the slave and have fhem in passive mode. Since this resulted in the same CPU load, the load can not come from creating and sending the requests. In passive Mode the Modbus Module just listens and does not send requests itself.

So the load must come from receiving or parsing. Reading Modbus RTU via serial line might be more cpu intensive than Reading Modbus TCP so just for clarification you could try to configure one raspberry pi with fhem as a Modbus relay that speaks Modbus rtu to your alarm system and Modbus TCP to a second raspberry pi.
Depending on your observation we should know where the main load is cased and maybe find some optimisation there.

Regards,
    Stefan

Offline claudio

  • New Member
  • *
  • Beiträge: 45
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #812 am: 10 August 2021, 21:52:57 »
thanks Stefan

I'm in the process of developping my own C console app to query the modbus slave since fhem appear to be very inefficient when dealing with continuously incoming data at rate of 1 per second or less (at least, that's what I observed)
My current app is probing modbus slave every 800ms and send back (changed data only) to my local mqtt mosquitto broker. The changes are reported to fhem via MQTT.
While I'm far from having a finished app, the cpu usage of the C console app is negligeable, between 0.3 and 1% CPU.

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #813 am: 12 August 2021, 19:12:07 »
Hello Claude,

a purpose built C-Program is certainly the most effeicient solution.
The Modbus-Module for Fhem has been designed to be very generic and to handle all sorts of special cases so it will never be as efficient as a C-Program that does exactly what you need :-)

regards,
   Stefan
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Tomk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #814 am: 14 August 2021, 20:58:22 »
Hallo Stefan,

nochmals vielen Dank für das Modul. Eine kleine Frage: ich nutze obj-i0-map um Zustände meines Rasenmähers auf integers zu Mappen welche an ein Touch Panel übertragen werden. Jetzt kommen dummerweise immer wieder neue Fehlerwerte als Ausgabe des Mähers zu Tage. Wenn diese nicht gemapped sind gibt modbusattr den Fehler Use of uninitialized value $val in concatenation (.) or string at ./FHEM/98_Modbus.pm line 3467.

Kann man irgendwie alles undefinierte auf einen einzelnen fehlerwert Mappen? Sowas wie z.b. "5:*"?

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #815 am: 15 August 2021, 20:03:36 »
Hallo Tomk,

bisher gibt es keinen Default bei der map (wenn Fhem als Modbus Master gelesene Werte konvertiert) bzw. der reverse map (wenn Fhem eingegebene oder als Slave zu sendende Werte konvertiert).
Das klingt ab er nach einer sinnvollen Erweiterung.

Wie sieht denn Deine Konfiguration genau aus?
Der Fehlermeldung nach geht es um Werte, die von ein anderer Master von Fhem als Slave abfragt oder?

Gruss
    Stefan


Offline Tomk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #816 am: 15 August 2021, 21:10:34 »
Vielen Dank für deine Antwort!
Richtig, ModbusAttr ist als Slave konfiguriert und ich stelle verschiedene Daten bereit. Vielleicht einfach ein default attr?

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #817 am: 15 August 2021, 21:21:05 »
Ich könnte mir ein obj-i0-mapDefault und ein obj-i0-rmapDefault vorstellen. Es könnte ja in beide Richtungen benötigt werden. Vielleicht komme ich in den nächsten Tagen mal dazu das einzubauen. Ich poste dann eine neue Version zum Testen.

Gruß
   Stefan

Offline Tomk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #818 am: 15 August 2021, 21:33:39 »
Super, vielen Dank vorab... Werde ich testen :-)

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #819 am: 17 August 2021, 20:06:38 »
Hallo,

hier eine neue Version zum Testen mit den angekündigten ..-mapDefault und ..-rmapDefault Attributen.

Gruss
   Stefan

Offline Tomk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #820 am: 17 August 2021, 21:10:09 »
Vielen Dank Stefan! Das ging ja schnell... Ich habe es gleich mal übernommen und starte den Test...

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #821 am: 18 August 2021, 07:24:58 »
Sorry - die Utils-Datei muss auch ausgetauscht werden, sonst fehlt was ...

EDIT: und um Missverständnisse zu vermeiden: Utils.pm gehört ins Verzeichnis lib/FHEM/HTTPMOD und wird erst beim Neustart von Fhem geladen.
« Letzte Änderung: 18 August 2021, 11:51:07 von StefanStrobel »

Offline Tomk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #822 am: 19 August 2021, 13:00:26 »
Ist mir nicht nicht aufgefallen... bis jetzt sieht's auch ohne die Utils gut aus. Wann sollte sich das fehlende Update auswirken!

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1690
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #823 am: 19 August 2021, 20:44:02 »
Ohne die Utils ist nur die Fehlermeldung weg.
Ein expliziter Default-Wert ist aber erst in der neuen Version der Utils implementiert.

Gruss
   Stefan

Offline Tomk

  • Jr. Member
  • **
  • Beiträge: 96
Antw:Neue Versionen und Support zum Modbus-Modul
« Antwort #824 am: 27 August 2021, 06:20:15 »
Hallo Stefan, ich habe es jetzt ein paar Tage so laufen und konnte keine Problem feststellen. Allerdings nur in der Slave Konfiguration für mich testbar...
Ich wäre froh wenn du Version in das offizielle Release einbauen könntest?

Besten Dank
Tomk