Neue Versionen und Support zum Modbus-Modul

Begonnen von StefanStrobel, 20 August 2017, 12:11:08

Vorheriges Thema - Nächstes Thema

RobertSch

#975
Zitat von: StefanStrobel am 29 September 2022, 16:11:38
Hallo Robert,

Ich vermute Du verwendest schlicht den attr-Befehl falsch.

attr UMG604 obj-h10048-poll 1

sollte funktionieren.
Wenn Du über die Fhem-Eingabezeile eine Fehlermeldung bekommst, dann machst Du definitiv etwas falsch.

Du kannst auch einfach ein set createAttrsFromParseInfo auswählen, dann werden die ganzen vorkonfigurierten Werte aus dem Modul als Attribute erzeugt und dann kannst Du das obj-h10048-poll einfach auswählen und von once auf 1 ändern.

Oder die öffnest die Moduldatei mit einem Editor und änderst es dort.

Gruß
    Stefan


Erst einmal danke für deine Geduld. Ja genau das dachte ich halt auch. Aber selbst mit Copy & Paste deines Befehls gibt es halt die Fehlermeldung aus. (UMG musste ich allerdings klein schreiben, wegen case-sensitive)

umg604: unknown attribute obj-h10048-poll. Type 'attr umg604 ?' for a detailed list.

Wenn ich spaßeshalber das ? eingebe, dann gibt fhem mir folgendes zurück:

umg604: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userattr userReadings verbose do_not_notify IODev queueMax alignTime enableControlSet enableSetInactive nonPrioritizedSet nonPrioritizedGet sortUpdate cacheUpdateHash cacheParseInfo propagateVerbose connectionsRoom serverIdExpr scanDelay disable event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat timestamp-on-change-reading queueDelay queueMax queueTimeout busDelay clientSwitchDelay frameGap dropQueueDoubles enableQueueLengthReading retriesAfterTimeout profileInterval openTimeout nextOpenDelay nextOpenDelay2 maxTimeoutsToReconnect skipGarbage timeoutLogLevel closeAfterResponse silentReconnect cmdIcon devStateIcon devStateStyle icon sortby webCmd webCmdLabel widgetOverride

Bei
set umg604 createAttrsFromParseInfo
passiert sogar rein gar nichts. Da ist die Seite in fhem einfach nur frei. Egal, ob ich das über die Leiste in fhem eingebe, oder ob ich es im Gerät selbst aus dem Dropdown Menü auswähle. Vielleicht fehlt da was im umg604 Modul?

EDIT:
Hab jetzt gerade nochmal das mit dem createAttrsFormParseInfo durchgeführt, nachdem ich zuvor noch die Attr cacheParseInfo und cacheUpdateHash auf 1 gesetzt hatte. Und siehe da, da passiert zumindest laut Log doch etwas. Allerdings sagt er das sämtliche Attrs aus den ParseInfo "unknown" sind.

2022.09.30 08:57:11 4: umg604: GetUpdate is using cached object list
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10032-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10034-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10036-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10038-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10040-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10042-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10044-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10046-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10048-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10050-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10050-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10050-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10050-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10050-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10050-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10052-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10052-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10052-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10052-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10052-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10052-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10054-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10054-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10054-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10054-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10054-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10054-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-max. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10056-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10058-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10058-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10058-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10058-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10058-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10058-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10060-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10060-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10060-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10060-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10060-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10060-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10062-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10062-min. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10062-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10062-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10062-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10062-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10176-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10176-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10176-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10176-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10176-unpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-defaultpoll. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-len. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h10178-unpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19000-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19000-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19000-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19000-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19002-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19002-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19002-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19002-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19004-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19004-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19004-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19004-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19006-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19006-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19006-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19006-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19008-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19008-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19008-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19008-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19010-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19010-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19010-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19010-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19012-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19012-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19012-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19012-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19014-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19014-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19014-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19014-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19016-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19016-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19016-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19016-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19018-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19018-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19018-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19018-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19020-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19020-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19020-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19020-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19022-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19022-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19022-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19022-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19024-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19024-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19024-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19024-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19026-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19026-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19026-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19026-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19028-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19028-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19028-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19028-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19030-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19030-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19030-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19030-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19032-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19032-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19032-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19032-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19034-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19034-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19034-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19034-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19036-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19036-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19036-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19036-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19038-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19038-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19038-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19038-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19040-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19040-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19040-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19040-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19042-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19042-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19042-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19042-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19044-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19044-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19044-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19044-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19046-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19046-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19046-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19046-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19048-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19048-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19048-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19048-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19050-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19050-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19050-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19050-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19054-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19054-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19054-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19054-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19056-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19056-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19056-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19056-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19058-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19058-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19058-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19058-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19060-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19060-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19060-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19060-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19070-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19070-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19070-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19070-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19072-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19072-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19072-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19072-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19074-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19074-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19074-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19074-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19076-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19076-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19076-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19076-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19078-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19078-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19078-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19078-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19080-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19080-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19080-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19080-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19082-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19082-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19082-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19082-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19084-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19084-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19084-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19084-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19086-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19086-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19086-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19086-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19088-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19088-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19088-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19088-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19090-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19090-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19090-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19090-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19092-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19092-format. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19092-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h19092-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-len. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-setexpr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-setmax. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-setmin. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9997-unpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-len. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-setexpr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-setmax. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-setmin. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9998-unpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-expr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-len. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-name. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-reading. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-set. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-setexpr. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-setmax. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-setmin. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-showget. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute obj-h9999-unpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-c-defFormat. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-c-defLen. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-c-defUnpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-c-read. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-c-write. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-d-defFormat. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-d-defLen. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-d-defUnpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-d-read. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-h-combine. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-h-defLen. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-h-defShowGet. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-h-defUnpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-h-read. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-h-write. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-i-defFormat. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-i-defLen. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-i-defUnpack. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-i-read. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-timing-commDelay. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-timing-sendDelay. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: unknown attribute dev-timing-timeout. Type 'attr umg604 ?' for a detailed list.
2022.09.30 08:57:18 3: umg604: createAttrsFromParseInfo done



Ich habe es nun auch mal ohne dieses Submodul getestet und lande da beim selben Ergbenis. Verstehe leider nicht wirklich woran es noch hapert. Zumal die get Abfrage mit dem Submodul funktioniert wie hier im Beispiel:

get umg604 Spannungswandler_PrimärL1

Hier gibt er mir den Wert "400" aus, was auch korrekt ist. Per set kann ich den auch überschreiben und das wird halt auch im Gerät übernommen.

Falls dir/euch noch etwas einfällt, dann lass es mich bitte wissen.

Danke!

Gruß
Robert

StefanStrobel

Hallo Robert,

ich habe mir das UMG604-Modul mal angesehen. Da fehlt etwas und deshalb konnte es nicht gehen.
Schau doch mal die Funktion ModbusUMG604_Initialize im Code an und ergänze die letzten Zeilen mit der Zuweisung an $modHash->{AttrList}

Dann sollte es so aussehen:


sub ModbusUMG604_Initialize($)
{
    my ($modHash) = @_;
$modHash->{parseInfo}  = \%UMG604parseInfo; # defines registers, inputs, coils etc. for this Modbus Defive
$modHash->{deviceInfo} = \%deviceInfo; # defines properties of the device like
# defaults and supported function codes
ModbusLD_Initialize($modHash); # Generic function of the Modbus module does the rest

        $modHash->{AttrList} = $modHash->{AttrList} . " " .     # Standard Attributes like IODEv etc
              $modHash->{ObjAttrList} . " " .                     # Attributes to add or overwrite parseInfo definitions
              $modHash->{DevAttrList} . " " .                     # Attributes to add or overwrite devInfo definitions
              "poll-.* " .                                        # overwrite poll with poll-ReadingName
              "polldelay-.* ";                                    # overwrite polldelay with polldelay-ReadingName
}


Zudem ist es recht unglücklich, dass die Variable deviceInfo nicht den Namen des Moduls enthält. Die sollte in UMG604deviceInfo umbenannt werden um weitere Probleme zu vermeiden.
Das sind 4 Stellen, die Du mit Suchen/ersetzen korrigieren kannst.
Ich habs auch einfach mal angehängt, aber nicht getestet.

Gruss
   Stefan

StefanStrobel

Hallo Axel,

ich bau den brokenFC2 ein. Hat das Gerät / Board denn einen Namen, den ich dafür verwenden kann?
Es gibt zum Beispiel schon brokenFC2 doepke.

Dennoch würde ich gerne Dein Beispiel verstehen.
02 02 00 02 00 04 d8 3a
würde ich als id2 fc2 Adresse 0002 Länge 0004 und crc d83a interpretieren. Hast Du Input 2 abgefragt?

02 a0 01 31
ist seltsam. Vermutlich soll das id2 sein, a0 wäre dann aber ein Error Code!
Wenn 01 dennoch die Antwort sein soll, dann fehlt hinten das zweite Byte des CRC...
Daher auch die Meldung von ModbusPoll, dass der CRC falsch ist.
Offenbar hat Dein Gerät noch mehr Spezialitäten auf Lager ;-)

Oder es liegt an der abgefragten Adresse 2, mit der das Board nicht klar kommt.
Wie sieht die Antwort denn bei Abfrage von Adresse 0 aus? also 02 02 00 00 00 00 + CRC
Was passiert wenn Du bei Adresse 0 eine Länge 4 abfragst? also 02 02 00 00 00 04 + CRC

Gruss
   Stefan


StefanStrobel

Hallo Axel,

ich habe das mal bei mir nachgestellt.
Wenn Du es in etwa so konfigurierst:

attr Master dev-d-combine 4
attr Master dev-d-defPoll 1
attr Master obj-d0-reading in1
attr Master obj-d1-reading in2
attr Master obj-d2-reading in3
attr Master obj-d3-reading in4


dann wird beim automatischen Auslesen zyklisch ein kombinierter Request für alle 4 Inputs erzeugt:

2022.09.30 19:00:39.318 5: Master: CreateUpdateHash full object list: d0 d1 d2 d3
2022.09.30 19:00:39.319 5: Master: CreateUpdateHash will request d0 len 1 in1
2022.09.30 19:00:39.319 5: Master: CreateUpdateHash will request d1 len 1 in2
2022.09.30 19:00:39.319 5: Master: CreateUpdateHash will request d2 len 1 in3
2022.09.30 19:00:39.319 5: Master: CreateUpdateHash will request d3 len 1 in4
2022.09.30 19:00:39.319 4: Master: CombineUpdateHash objHash keys before combine: d1,d2,d3,d0
2022.09.30 19:00:39.319 5: Master: CombineUpdateHash tries to combine read commands
2022.09.30 19:00:39.319 5: Master: CombineUpdateHash combine d0 len 1 in1 with d1 len 1 in2 to span 2, drop read for d1
2022.09.30 19:00:39.319 5: Master: CombineUpdateHash combine d0 len 1 in1 with d2 len 1 in3 to span 3, drop read for d2
2022.09.30 19:00:39.320 5: Master: CombineUpdateHash combine d0 len 1 in1 with d3 len 1 in4 to span 4, drop read for d3
2022.09.30 19:00:39.320 5: Master: CombineUpdateHash keys are now d0
2022.09.30 19:00:39.320 4: Master: GetUpdate will now create requests for d0 len 4 (combined d0 len 1 in1 with d1 len 1 in2 and d2 len 1 in3 and d3 len 1 in4)
2022.09.30 19:00:39.320 4: Master: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 2 d0, len 4, master device Master, reading in1 (getUpdate for combined d0 len 1 in1 with d1 len 1 in2 and d2 len 1 in3 and d3 len 1 in4)
2022.09.30 19:00:39.320 5: MS: QueueRequest called from DoRequest with d0, qlen 0 from master Master through io device MS
2022.09.30 19:00:39.320 5: MS: StartQueueTimer called from QueueRequest sets internal timer to process queue in 0.000 seconds
Event: Master:reread
2022.09.30 19:00:39.320 1: Test step 1 (main::testStep1) done
2022.09.30 19:00:39.320 5: MS: ProcessRequestQueue called from Fhem internal timer as queue:MS, qlen 1, request: request: id 1, read fc 2 d0, len 4, master device Master, reading in1 (getUpdate for combined d0 len 1 in1 with d1 len 1 in2 and d2 len 1 in3 and d3 len 1 in4), queued 0.00 secs ago
2022.09.30 19:00:39.321 5: MS: checkDelays sendDelay, last send to same device was never, required delay is 0
2022.09.30 19:00:39.321 5: MS: checkDelays busDelayRead, last activity on bus was never, required delay is 0
2022.09.30 19:00:39.321 5: MS: checkDelays clientSwitchDelay is not relevant
2022.09.30 19:00:39.321 5: MS: checkDelays commDelay, last communication with same device was never, required delay is 0
2022.09.30 19:00:39.321 4: MS: ProcessRequestQueue (V4.4.06 - 17.9.2022) qlen 1, sending 01020000000479c9 via none, read buffer empty,
request: id 1, read fc 2 d0, len 4, master device Master, reading in1 (getUpdate for combined d0 len 1 in1 with d1 len 1 in2 and d2 len 1 in3 and d3 len 1 in4), queued 0.00 secs ago
2022.09.30 19:00:39.322 5: MS: Send called from ProcessRequestQueue
2022.09.30 19:00:39.322 4: MS: Simulate sending to none: 01020000000479c9


Wenn Dein Gerät das nicht mit einem Fehler beantwortet, dann werden aus der Antwort auch 4 Readings erzeugt ohne dass eine Änderung nötig wäre.
Die Länge 4 wird beim Parsen aus dem Request für die Response verwendet:

2022.09.30 19:00:39.322 1: Test simulate reception of 010201022049
2022.09.30 19:00:39.322 5: MS: readFn buffer: 010201022049
2022.09.30 19:00:39.322 5: MS: ParseFrameStart called from ReadFn protocol RTU expecting id 1
2022.09.30 19:00:39.322 4: MS: ParseFrameStart (RTU, master) extracted id 1, fCode 2 and potential data 0102
2022.09.30 19:00:39.322 5: MS: HandleResponse called from ReadFn
2022.09.30 19:00:39.323 5: MS: ParseResponse called from HandleResponse
2022.09.30 19:00:39.323 5: MS: CheckChecksum (called from ParseResponse): 2049 is valid
2022.09.30 19:00:39.323 5: MS: now parsing response data objects, master is Master relay is undefined
2022.09.30 19:00:39.323 5: Master: ParseDataString called from HandleResponse with data hex 02, type d, adr 0, op read
2022.09.30 19:00:39.323 5: Master: SplitDataString called from ParseDataString with data hex 02, type d, adr 0, valuesLen 4, op read
2022.09.30 19:00:39.323 5: Master: SplitDataString shortened coil / input bit string to 0100, start adr 0, valuesLen 4
2022.09.30 19:00:39.323 5: Master: CreateDataObjects called from ParseDataString with objList d0,d1,d2,d3
2022.09.30 19:00:39.323 5: Master: CreateDataObjects sortedList d0,d1,d2,d3
2022.09.30 19:00:39.323 5: Master: CreateParseInfoCache called
2022.09.30 19:00:39.323 5: Master: CreateDataObjects unpacked 30 with a to 0
2022.09.30 19:00:39.323 4: Master: CreateDataObjects assigns value 0 to in1
2022.09.30 19:00:39.324 5: Master: CreateParseInfoCache called
2022.09.30 19:00:39.324 5: Master: CreateDataObjects unpacked 31 with a to 1
2022.09.30 19:00:39.324 4: Master: CreateDataObjects assigns value 1 to in2
2022.09.30 19:00:39.324 5: Master: CreateParseInfoCache called
2022.09.30 19:00:39.324 5: Master: CreateDataObjects unpacked 30 with a to 0
2022.09.30 19:00:39.324 4: Master: CreateDataObjects assigns value 0 to in3
2022.09.30 19:00:39.324 5: Master: CreateParseInfoCache called
2022.09.30 19:00:39.324 5: Master: CreateDataObjects unpacked 30 with a to 0
2022.09.30 19:00:39.324 4: Master: CreateDataObjects assigns value 0 to in4
Event: Master:in1: 0
Event: Master:in2: 1
Event: Master:in3: 0
Event: Master:in4: 0
2022.09.30 19:00:39.325 5: Master: ParseDataString created 4 readings


Ich habe trotzdem mal angefangen, ein brokenFC2 relay1 für Deinen Fall einzubauen, Ergebnis anbei, aber in meinen Simulationen mit der von Dir geposteten Antwort aus der Doku war das nicht nötig.

Gruss
   Stefan

ahermann86

Hallo Stefan,

sorry für die späte Antwort - bin aber erst jetzt dazu gekommen.

Die Konfiguration funktioniert mit folgender Definition:


defmod Mod_Pumpen ModbusAttr 2 1
attr Mod_Pumpen IODev Modbus_Dev
attr Mod_Pumpen dev-d-combine 4
attr Mod_Pumpen dev-d-defPoll 1
attr Mod_Pumpen devStateIcon 1.on:on:Rel1+off 1.off:off:Rel1+on\
2.on:on:Rel2+off 2.off:off:Rel2+on\
3.on:on:Rel3+off 3.off:off:Rel3+on\
4.on:on:Rel4+off 4.off:off:Rel4+on
attr Mod_Pumpen obj-c0-map 0:off, 1:on
attr Mod_Pumpen obj-c0-reading Rel1
attr Mod_Pumpen obj-c0-set 1
attr Mod_Pumpen obj-c1-map 0:off, 1:on
attr Mod_Pumpen obj-c1-reading Rel2
attr Mod_Pumpen obj-c1-set 1
attr Mod_Pumpen obj-c2-map 0:off, 1:on
attr Mod_Pumpen obj-c2-reading Rel3
attr Mod_Pumpen obj-c2-set 1
attr Mod_Pumpen obj-c3-map 0:off, 1:on
attr Mod_Pumpen obj-c3-reading Rel4
attr Mod_Pumpen obj-c3-set 1
attr Mod_Pumpen obj-d0-reading in1
attr Mod_Pumpen obj-d1-reading in2
attr Mod_Pumpen obj-d2-reading in3
attr Mod_Pumpen obj-d3-reading in4
attr Mod_Pumpen obj-h16384-reading Adr
attr Mod_Pumpen obj-h16384-set 1
attr Mod_Pumpen room Modbus
attr Mod_Pumpen stateFormat 1:Rel1\
2:Rel2\
3:Rel3\
4:Rel4


Response Beispiel: 01 02 01 01 60 48 //IN1 pressed
Jetzt habe ich endlich auch das mit dem Response für die Coils verstanden. Da stand ich auf dem Schlauch - Sorry dafür - das ist ja Byteweise organisiert und das unterstrichene 01 bedeutet, wieviel Bytes noch kommen...
Das combine tut für die Performance gut - sonst würde jedes Coil separat abgefragt werden...

Danke für die Hilfe und das brokenFC2 kannst du somit wieder löschen.  :D

Eine (nicht wichtige) Kleinigkeit noch:
das
"0:off, 1:on" und das "set 1"
wollte ich in ein
"attr Mod_Pumpen dev-type-tRelay-map 1:on, 0:off" und "attr Mod_Pumpen dev-type-tRelay-set 1"
zusammenfassen.
Ist das Absicht, dass das für die Discretes nicht zugelassen ist?

Gruß
Axel

StefanStrobel

Zitat von: ahermann86 am 01 Oktober 2022, 00:29:30
Eine (nicht wichtige) Kleinigkeit noch:
das
"0:off, 1:on" und das "set 1"
wollte ich in ein
"attr Mod_Pumpen dev-type-tRelay-map 1:on, 0:off" und "attr Mod_Pumpen dev-type-tRelay-set 1"
zusammenfassen.
Ist das Absicht, dass das für die Discretes nicht zugelassen ist?

gute Frage :-) ich erinnere mich nicht daran, warum ich das damals nicht auch für "cd" zugelassen habe. Eigentlich sollte das dort genauso gehen.
Was passiert denn wenn Du die Zeile 329 in der Attributliste ergänzt?

        'obj-[cdih][0-9]+-type',


Gruss
   Stefan

ahermann86

Hi Stefan,

yup - das funktioniert   8)
Kannst es ja beim nächsten Release einpflegen  :)

Gruß
Axel

Andy1981

Hallo Stefan,

ich versuche mal wieder meine Pluggit Lüftungsanlage direkt mit FHEM über das Modbus Modul zu verbinden. Da die Daten der Pluggit AP300 nicht dem Modbus standard entsprechen und beispielweise 4 Temperaturen in 2 Registern gespeichert sind, würde ich gerne selber Readings über die "ModbusReadingsFN" Funktion erzeugen. Als Vorlage habe ich das ModbusElsnerWS von Klaus Scheuer verwendet, aktuell sieht das Modul so aus:


# $Id: 98_ModbusPluggitAP300.pm 24745 2022-10-02 16:40:26Z Andreas H $
# This modules handles the communication with a Pluggit AP190/300/400.

package main;

use strict;
use warnings;
use Time::HiRes qw( time );
use HttpUtils;

# deviceInfo defines properties of the device.
# some values can be overwritten in parseInfo, some defaults can even be overwritten by the user with attributes if a corresponding attribute is added to AttrList in _Initialize.
#

sub ModbusPluggit_Eval($$$);
sub ModbusPluggit_Initialize($);

my %ModbusPluggit_DeviceInfo = (
"timing" => {
timeout => 2, # 2 seconds timeout when waiting for a response
commDelay => 0.7, # 0.7 seconds minimal delay between two communications e.g. a read a the next write,
# can be overwritten with attribute commDelay if added to AttrList in _Initialize below
sendDelay => 0.7, # 0.7 seconds minimal delay between two sends, can be overwritten with the attribute
# sendDelay if added to AttrList in _Initialize function below
},
"h" => { # details for "holding registers" if the device offers them
read => 3, # use function code 3 to read holding registers.
write => 16, # use function code 6 to write holding registers (alternative could be 16)
defLen => 1, # default length (number of registers) per value (e.g. 2 for a float of 4 bytes that spans 2 registers)
# can be overwritten in parseInfo per reading by specifying the key "len"
combine => 10, # allow combined read of up to 10 adjacent registers during getUpdate
defUnpack => "f>", # default pack / unpack code to convert raw values, e.g. "n" for a 16 bit integer oder
# "f>" for a big endian float IEEE 754 floating-point numbers
# can be overwritten in parseInfo per reading by specifying the key "unpack"
defPoll => 1, # All defined Input Registers should be polled by default unless specified otherwise in parseInfo or by attributes
defShowGet => 1, # default für showget Key in parseInfo
},
);

# %parseInfo:
# r/c/i+adress => objHashRef (h = holding register, c = coil, i = input register, d = discrete input)
# the address is a decimal number without leading 0
#
# Explanation of the parseInfo hash sub-keys:
# name internal name of the value in the modbus documentation of the physical device
# reading name of the reading to be used in Fhem
# set can be set to 1 to allow writing this value with a Fhem set-command
# setmin min value for input validation in a set command
# setmax max value for input validation in a set command
# hint string for fhemweb to create a selection or slider
# expr perl expression to convert a string after it has bee read
# map a map string to convert an value from the device to a more readable output string
# or to convert a user input to the machine representation
# e.g. "0:mittig, 1:oberhalb, 2:unterhalb"
# setexpr per expression to convert an input string to the machine format before writing
# this is typically the reverse of the above expr
# format a format string for sprintf to format a value read
# len number of Registers this value spans
# poll defines if this value is included in the read that the module does every defined interval
# this can be changed by a user with an attribute
# unpack defines the translation between data in the module and in the communication frame
# see the documentation of the perl pack function for details.
# example: "n" for an unsigned 16 bit value or "f>" for a float that is stored in two registers
# showget can be set to 1 to allow a Fhem get command to read this value from the device
# polldelay if a value should not be read in each iteration after interval has passed,
# this value can be set to a multiple of interval

my %ModbusPluggit_ParseInfo = (
  'h1032'  => {reading => 'Temperaturen',
            name => 'Temperaturen',
            expr => 'sprintf("%d %d %d %d",
             $val[0],
             $val[1],
             $val[2],
             $val[3])',
        unpack => 'CCCC',
            len => 2,
            poll => 1
          }
);


#####################################

sub ModbusPluggit_Initialize($)
{
    my ($modHash) = @_;
    require "$attr{global}{modpath}/FHEM/98_Modbus.pm";

    $modHash->{parseInfo}  = \%ModbusPluggit_ParseInfo;  # defines registers, inputs, coils etc. for this Modbus Defive   
    $modHash->{deviceInfo} = \%ModbusPluggit_DeviceInfo; # defines properties of the device like defaults and supported function codes

    ModbusLD_Initialize($modHash);                        # Generic function of the Modbus module does the rest
    $modHash->{ModbusReadingsFn} = "ModbusPluggit_Eval";    # to be called before a reading is set
   
    $modHash->{AttrList} = $modHash->{AttrList} . " " .     # Standard Attributes like IODEv etc
        $modHash->{ObjAttrList} . " " .                     # Attributes to add or overwrite parseInfo definitions
        $modHash->{DevAttrList} . " " .                     # Attributes to add or overwrite devInfo definitions
        "poll-.* " .                                                     # overwrite poll with poll-ReadingName
        "polldelay-.* ";                                              # overwrite polldelay with polldelay-ReadingName
}



sub ModbusPluggit_Eval($$$) {
  my ($modHash, $readingName, $readingVal) = @_;
  my $name = $modHash->{NAME};
  my $ctrl = 1;
  my ($Frischluft, $Zuluft, $Abluft, $Fortluft) = split(' ', $readingVal);
  readingsSingleUpdate($modHash, "Frischluft", $Frischluft, 1);
  readingsSingleUpdate($modHash, "Zuluft", $Zuluft, 1);
  readingsSingleUpdate($modHash, "Abluft", $Abluft, 1);
  readingsSingleUpdate($modHash, "Fortluft", $Fortluft, 1);
  return $ctrl;
}
1;

=pod
=begin html

<a name="ModbusPluggit"></a>
<h3>ModbusPluggit</h3>
<ul>
    ModbusPluggit uses the low level Modbus module to provide a way to communicate with SDM221M smart electrical meter from B+G E-Tech & EASTON.
It defines the modbus input and holding registers and reads them in a defined interval.

<br>
    <b>Prerequisites</b>
    <ul>
        <li>
          This module requires the basic Modbus module which itsef requires Device::SerialPort or Win32::SerialPort module.
        </li>
    </ul>
    <br>

    <a name="ModbusPluggitDefine"></a>
    <b>Define</b>
    <ul>
        <code>define &lt;name&gt; ModbusPluggit &lt;Id&gt; &lt;Interval&gt;</code>
        <br><br>
        The module connects to the smart electrical meter with Modbus Id &lt;Id&gt; through an already defined modbus device and actively requests data from the
        smart electrical meter every &lt;Interval&gt; seconds <br>
        <br>
        Example:<br>
        <br>
        <ul><code>define SDM221M ModbusPluggit 1 60</code></ul>
    </ul>
    <br>

    <a name="ModbusPluggitConfiguration"></a>
    <b>Configuration of the module</b><br><br>
    <ul>
        apart from the modbus id and the interval which both are specified in the define command there is nothing that needs to be defined.
However there are some attributes that can optionally be used to modify the behavior of the module. <br><br>
       
        The attributes that control which messages are sent / which data is requested every &lt;Interval&gt; seconds are:

        <pre>
poll-Energy_total__kWh
poll-Energy_import__kWh
</pre>
       
        if the attribute is set to 1, the corresponding data is requested every &lt;Interval&gt; seconds. If it is set to 0, then the data is not requested.
        by default the temperatures are requested if no attributes are set.
        <br><br>
        Example:
        <pre>
        define SDM221M ModbusPluggit 1 60
        attr SDM221M poll-Energy_total__kWh 0
        </pre>
    </ul>

    <a name="ModbusPluggit"></a>
    <b>Set-Commands</b><br>
    <ul>
        The following set options are available:
        <pre>
        </pre>
    </ul>
<br>
    <a name="ModbusPluggitGet"></a>
    <b>Get-Commands</b><br>
    <ul>
        All readings are also available as Get commands. Internally a Get command triggers the corresponding
        request to the device and then interprets the data and returns the right field value. To avoid huge option lists in FHEMWEB, only the most important Get options
        are visible in FHEMWEB. However this can easily be changed since all the readings and protocol messages are internally defined in the modue in a data structure
        and to make a Reading visible as Get option only a little option (e.g. <code>showget => 1</code> has to be added to this data structure
    </ul>
<br>
    <a name="ModbusPluggitattr"></a>
    <b>Attributes</b><br><br>
    <ul>
<li><a href="#do_not_notify">do_not_notify</a></li>
        <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
        <br>
<li><b>poll-Energy_total__kWh</b></li>
<li><b>poll-Energy_import__kWh</b></li>
            include a read request for the corresponding registers when sending requests every interval seconds <br>
        <li><b>timeout</b></li>
            set the timeout for reads, defaults to 2 seconds <br>
<li><b>minSendDelay</b></li>
minimal delay between two requests sent to this device
<li><b>minCommDelay</b></li> 
minimal delay between requests or receptions to/from this device
    </ul>
    <br>
</ul>

=end html
=cut


Anscheinend wird die Subroutine in meinem Modul "98_ModbusPluggit.pm" nicht aufgerufen, ich bekomme immer wieder die Meldung "Undefined subroutine &Modbus::ModbusPluggit_Eval". Hier mal der Auszug aus dem Logfile:


2022.10.03 13:18:09 5: AP300: CreateDataObjects unpacked 10151511 with CCCC to 16, 21, 21, 17
2022.10.03 13:18:09 5: AP300: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};sprintf("%d %d %d %d",
             $val[0],
             $val[1],
             $val[2],
             $val[3]) to 16 21 21 17
2022.10.03 13:18:09 5: AP300: CreateDataObjects is calling ModbusReadingsFn via TryCall for reading Temperaturen and val 16 21 21 17
2022.10.03 13:18:09 3: AP300: CreateDataObjects error calling ModbusReadingsFn: Undefined subroutine &Modbus::ModbusPluggit_Eval called at ./FHEM/98_Modbus.pm line 4995.

2022.10.03 13:18:09 4: AP300: CreateDataObjects assigns value 16 21 21 17 to Temperaturen
2022.10.03 13:18:09 5: AP300: ParseDataString created 1 readings
2022.10.03 13:18:09 4: AP300: HandleResponse done, current frame / read buffer: 0103041015151121ab, id 1, fCode 3,
request: id 1, read fc 3 h1032, len 2, master device AP300, reading Temperaturen (getUpdate for Temperaturen len 2), queued 0.12 secs ago, sent 0.11 secs ago,
response: id 1, fc 3, h1032, len 2, values 10151511
2022.10.03 13:18:09 5: AP300: ResetExpect for HandleResponse from response to idle
2022.10.03 13:18:09 5: AP300: DropFrame called from ReadFn - drop 0103041015151121ab


Zum testen habeich die subroutine "ModbusPluggit_Eval" in das Modbus Modul "98_Modbus.pm" kopiert, dann werden die 4 einzelnen Readings erzeugt und das reading "Temperaturen" wird nicht mehr aktualisiert, also so wie es eigentlich sein sollte.

Momentan komme ich mit meinen beschränkten perl Fähigkeiten nicht weiter, muss ich die subroutine noch irgendwie global bekannt machen?
Bin für jeden Tip dankbar.

Gruß Andreas

StefanStrobel

Hallo Andreas,

Das liegt am Namespace. Das Modbus-Modul hat package Modbus, Du hast package main verwendet.
Wenn Du die Funktion als String zuweist, könntest Du main:: im String davor setzen. Sauberer ist aber eine Zuweisung als Referenz auf eine Funktion wie in der Initialize-Funktion von 98_Modbus.pm

Gruß
    Stefan

Andy1981

Hallo Stefan,

danke für die schnelle Antwort, habe jetzt main:: in den String eingefügt und es funktioniert.
Werde mir in einer ruhigen Minute mal die Initialize Funktion anschauen. Mal schauen ob ich verstehe wie die Zuweisung als Referenz funktioniert.

Gruß Andreas

RobertSch

#985
Zitat von: StefanStrobel am 30 September 2022, 16:29:40
Hallo Robert,

ich habe mir das UMG604-Modul mal angesehen. Da fehlt etwas und deshalb konnte es nicht gehen.
Schau doch mal die Funktion ModbusUMG604_Initialize im Code an und ergänze die letzten Zeilen mit der Zuweisung an $modHash->{AttrList}

Dann sollte es so aussehen:


sub ModbusUMG604_Initialize($)
{
    my ($modHash) = @_;
$modHash->{parseInfo}  = \%UMG604parseInfo; # defines registers, inputs, coils etc. for this Modbus Defive
$modHash->{deviceInfo} = \%deviceInfo; # defines properties of the device like
# defaults and supported function codes
ModbusLD_Initialize($modHash); # Generic function of the Modbus module does the rest

        $modHash->{AttrList} = $modHash->{AttrList} . " " .     # Standard Attributes like IODEv etc
              $modHash->{ObjAttrList} . " " .                     # Attributes to add or overwrite parseInfo definitions
              $modHash->{DevAttrList} . " " .                     # Attributes to add or overwrite devInfo definitions
              "poll-.* " .                                        # overwrite poll with poll-ReadingName
              "polldelay-.* ";                                    # overwrite polldelay with polldelay-ReadingName
}


Zudem ist es recht unglücklich, dass die Variable deviceInfo nicht den Namen des Moduls enthält. Die sollte in UMG604deviceInfo umbenannt werden um weitere Probleme zu vermeiden.
Das sind 4 Stellen, die Du mit Suchen/ersetzen korrigieren kannst.
Ich habs auch einfach mal angehängt, aber nicht getestet.

Gruss
   Stefan

Moin Stefan!

Deine Änderungen haben Wunder bewirkt! Das Modul funktioniert nun wie es soll!

Vielen lieben Dank!

Gruß
Robert

EDIT: Ich musste nochmal das Modul editieren, damit vernünftige Werte ausgespuckt werden. Jetzt passt es. Ich hänge es an, falls es jemand gebrauchen kann.

ahermann86

#986
Hallo Stefan,

ich versuche gerade den Stromzähler SDM72DM (v2) per Modbus einzubinden.

Mit der angehängten 98_ModbusSDM72DM.pm funktioniert das auch - allerdings nur mit combine => 2.
Mit 30 werden nicht mehr alle Werte geparsed. Ein Beispiel ist die Spannung der Phase 3, welches über das Register i04 kommen soll.

Als Gegenkontrolle habe ich das wieder mit einem Modbus RTU Windows Programm geprüft. Dabei sieht die Kommunikation so aus:

Req 01 04 00 00 00 12 70 07
Res 01 04 24 00 00 00 00 00 00 00 00 43 63 69 29 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2B 22

Reg i4: 43636929 --> 227.41 V


In FHEM sieht das im Log so aus:


2022.10.11 22:22:41 4: StromzaehlerSDM: GetUpdate (V4.4.11 - 5.10.2022) called from Fhem internal timer
2022.10.11 22:22:41 4: StromzaehlerSDM: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 10.0 sec at 22:22:51.026, interval 10
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash full object list: i00 i02 i04 i06 i08 i10 i12 i14 i16
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i00 len 2 L1_Voltage
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i02 len 2 L2_Voltage
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i04 len 2 L3_Voltage
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i06 len 2 L1_Current
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i08 len 2 L2_Current
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i10 len 2 L3_Current
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i12 len 2 L1_Active_Power
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i14 len 2 L2_Active_Power
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateUpdateHash will request i16 len 2 L3_Active_Power
2022.10.11 22:22:41 4: StromzaehlerSDM: CombineUpdateHash objHash keys before combine: i02,i16,i06,i12,i04,i14,i00,i10,i08
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash tries to combine read commands
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i02 len 2 L2_Voltage to span 4, drop read for i02
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i04 len 2 L3_Voltage to span 6, drop read for i04
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i06 len 2 L1_Current to span 8, drop read for i06
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i08 len 2 L2_Current to span 10, drop read for i08
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i10 len 2 L3_Current to span 12, drop read for i10
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i12 len 2 L1_Active_Power to span 14, drop read for i12
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i14 len 2 L2_Active_Power to span 16, drop read for i14
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash combine i00 len 2 L1_Voltage with i16 len 2 L3_Active_Power to span 18, drop read for i16
2022.10.11 22:22:41 5: StromzaehlerSDM: CombineUpdateHash keys are now i00
2022.10.11 22:22:41 4: StromzaehlerSDM: GetUpdate will now create requests for i00 len 18 (combined i00 len 2 L1_Voltage with i02 len 2 L2_Voltage and i04 len 2 L3_Voltage and i06 len 2 L1_Current and i08 len 2 L2_Current and i10 len 2 L3_Current and i12 len 2 L1_Active_Power and i14 len 2 L2_Active_Power and i16 len 2 L3_Active_Power)
2022.10.11 22:22:41 4: StromzaehlerSDM: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i00, len 18, master device StromzaehlerSDM, reading L1_Voltage (getUpdate for combined i00 len 2 L1_Voltage with i02 len 2 L2_Voltage and i04 len 2 L3_Voltage and i06 len 2 L1_Current and i08 len 2 L2_Current and i10 len 2 L3_Current and i12 len 2 L1_Active_Power and i14 len 2 L2_Active_Power and i16 len 2 L3_Active_Power)
2022.10.11 22:22:41 5: StromzaehlerSDM: ParseDataString called from HandleResponse with data hex 000000000000000043641266000000000000000000000000000000000000000000000000, type i, adr 00, op read
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString called from ParseDataString with data hex 000000000000000043641266000000000000000000000000000000000000000000000000, type i, adr 00, valuesLen 18, op read
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i2
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i3
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i4
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i5
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i6
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i7
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i8
2022.10.11 22:22:41 5: StromzaehlerSDM: SplitDataString has no information about handling i9
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects called from ParseDataString with objList i00,i10,i12,i14,i16
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects sortedList i00,i10,i12,i14,i16
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateParseInfoCache called
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects unpacked 00000000 with f> to 0
2022.10.11 22:22:41 5: StromzaehlerSDM: FormatVal for CreateDataObjects formats 0 with format %.01f V, result is 0.0 V
2022.10.11 22:22:41 4: StromzaehlerSDM: CreateDataObjects assigns value 0.0 V to L1_Voltage
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateParseInfoCache called
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects unpacked 00000000 with f> to 0
2022.10.11 22:22:41 5: StromzaehlerSDM: FormatVal for CreateDataObjects formats 0 with format %.03f A, result is 0.000 A
2022.10.11 22:22:41 4: StromzaehlerSDM: CreateDataObjects assigns value 0.000 A to L3_Current
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateParseInfoCache called
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects unpacked 00000000 with f> to 0
2022.10.11 22:22:41 5: StromzaehlerSDM: FormatVal for CreateDataObjects formats 0 with format %.01f W, result is 0.0 W
2022.10.11 22:22:41 4: StromzaehlerSDM: CreateDataObjects assigns value 0.0 W to L1_Active_Power
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateParseInfoCache called
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects unpacked 00000000 with f> to 0
2022.10.11 22:22:41 5: StromzaehlerSDM: FormatVal for CreateDataObjects formats 0 with format %.01f W, result is 0.0 W
2022.10.11 22:22:41 4: StromzaehlerSDM: CreateDataObjects assigns value 0.0 W to L2_Active_Power
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateParseInfoCache called
2022.10.11 22:22:41 5: StromzaehlerSDM: CreateDataObjects unpacked 00000000 with f> to 0
2022.10.11 22:22:41 5: StromzaehlerSDM: FormatVal for CreateDataObjects formats 0 with format %.01f W, result is 0.0 W
2022.10.11 22:22:41 4: StromzaehlerSDM: CreateDataObjects assigns value 0.0 W to L3_Active_Power
2022.10.11 22:22:41 5: StromzaehlerSDM: ParseDataString created 5 readings


.. hier scheint es, dass von der Schnittstelle Werte kommen:
000000000000000043641266000000000000000000000000000000000000000000000000
43641266 --> 228.07 V

Wieso wird i4 (..) nicht geparsed?

Gruß
Axel

Nobbynews

Zitat von: ahermann86 am 11 Oktober 2022, 22:39:54
ich versuche gerade den Stromzähler SDM72DM (v2) per Modbus einzubinden.

Hast Du mal mein Modul zum SDM72DMv2 ausprobiert?
https://forum.fhem.de/index.php/topic,75638.msg1217182.html#msg1217182

StefanStrobel

Hallo Axel,

die Schreibweise mit führenden Nullen bei den Objekten (,,i04" statt ,,i4") funktioniert bei Attributen mit zusätzlichem Aufwand. Für Module geht das nicht. Da solltest Du die 0 weglassen.

Gruß
    Stefan

ahermann86

Hallo zusammen

@StefanStrobel:
Ohne führende 0 geht es. Danke für den Hinweis  :)

@Nobbynews:
Das ist gut zu wissen - da kann ich mir noch ein paar Werte rausklauen und muss nicht alles aus dem PDF umsetzen.

Gruß
Axel