NEWS
Modbus Finder 7M.38.8.400.0212 auslesen
-
@aherby Ich würde es so machen, dass ich mir ein Register nehme dessen Wert ich kenne. In deinem Fall könnte das zum Beispiel 30024 (Communication Type) sein. Das müsste dann eine 2 liefern.
Dann würde ich erstmal nur das Register abfragen (mit verschiedenen Einstellungen bei Datentyp und Adresse) bis der Wert in IObroker dann zu dem passt was du erwartet hast.
Bei vielen Geräten ist es so, dass im Gerät noch ein Offset verwendet wird.
Die Dokumentation zeigt also Register 3000 du musst aber beim Abfragen 3001 oder 2999 verwenden.
Habe mir jetzt nicht die ganze Doku von Finder angesehen aber das sind Sachen die du versuchen kannst.Wie @wendy2702 schon geschrieben hat muss vermutlich auch der Haken bei Alias Benutzen raus.
Ich bin mir nicht 100% sicher aber auch das kannst du ja bei deinen Versuchen 30024 zu lesen testen.
-
@wendy2702
die Einstellungen im ioBroker für Modbus habe ich doch am 31.Jan 2023, 22:57 also müsste der 3te Beitrag gewesen sein schon gezeigt oder kann ich da irgendwo noch mehr einstellen?Im Zähler kann ich für Modbus nur folgende Werte einstellen:
- Geräte Adresse
-Übertragsungsgeschwindigkeit
-Parität
-Stop Bits
- Geräte Adresse
-
@aherby sagte in Modbus Finder 7M.38.8.400.0212 auslesen:
die Einstellungen im ioBroker für Modbus habe ich doch am 31.Jan 2023, 22:57 also müsste der 3te Beitrag gewesen sein schon gezeigt oder kann ich da irgendwo noch mehr einstellen?
OK. Wenn die immer noch so sind muss die ID da raus und zu 99% der Haken bei Aliases benutzen raus. Bei "mehrere IDs verwenden" wird die ID nur auf der Register Seite eingetragen.
Wenn du aber eh nicht vor hast weitere Geräte an den Bus zu hängen würde ich den haken entfernen und die ID dort angeben.
Dann wie @Klamm-0 geschrieben hat. Ein "einfaches" Register wählen wie z.B. Spannung oder Strom bei dem man direkt erkennen kann ob der Wert passt.
Dieses Register so eintragen wie es im Dokument steht und logfile posten bzw. schauen ob der Wert passt
-
@klamm-0 So habe ich es ja dann gemacht.
Spannung U1 und U3 abgefragt. Dann herausgefunden, dass die Adresse 30107 = U1 in Wirklichkeit die Frequenz anzeigt.
Die Adresse 30111 = U3 den Wert von U2 anzeigt.Der Haken bei Alias benutzen verändert an den Adressen überhaupt nichts.
Bitte mal erklären warum die ID bei den Allgemeinen einstellen im Adapter vom ioBroker raus muss.
Einfach nur damit ich es mir besser merken kann oder es für andere Punkte verstehe.Als USB-Gerät habe ich den
Waveshare USB TO RS485
im Einsatz. Mit einem anderen Adapter habe ich den Rücktest mit den Adressen nicht gemacht.Ok wenn ich unter der Experten-Ansicht dann für jeden Wert ein einzelnes Offset einstellen muss dann kann ich auch die Adresse entsprechend verändern. Da scheinbar im Bereich 30000 bis 30099 ein Offset von -1 und ab 30100 ein Offset von -2 einzustellen wäre.
Der Zähler ist jetzt eingebaut damit ich auch die Leistungsdaten, Verbrauch und so weiter auslesen kann.
Das Problem ist nun, dass mir der direkte Zugriff auf den Zähler gerade täglich fehlt. -
@aherby Dann stell es halt so ein.
Das der haken bei Aliases Verwenden keinen Unterschied macht fällt mir gerade schwer zu glauben aber egal.
Wenn du ja weisst was du Einstellen musst um die richtigen Werte zu bekommen ist es ja OK.
-
@wendy2702 das Verwenden der ID oder wie es heißt bewirkt ja optisch nur, dass zwischen Adresse und eingetragender Name ein "_" eingefügt wird oder nicht.
Gibt es ein Beispiel wie der Unterschied zwischen Alias verwenden oder nicht verwenden aussieht?
Ja wenn ich jetzt noch den Zählerstand für Bezug und Lieferung und andere Daten auslesen kann, reicht es mir völlig.
-
@aherby Hast du denn dann noch eine Frage oder musst du jetzt nur noch Register und Objekttypen finden und einstellen?
-
@aherby sagte in Modbus Finder 7M.38.8.400.0212 auslesen:
das Verwenden der ID oder wie es heißt bewirkt ja optisch nur, dass zwischen Adresse und eingetragender Name ein "_" eingefügt wird oder nicht.
Nein, dafür ist der haken verantwortlich:
@aherby sagte in Modbus Finder 7M.38.8.400.0212 auslesen:
Gibt es ein Beispiel wie der Unterschied zwischen Alias verwenden oder nicht verwenden aussieht?
Hier gibt es die Erklärung dazu: https://github.com/ioBroker/ioBroker.modbus
Use aliases as address Normally all registers can have address from 0 to 65535. By using of aliases you can define virtual address fields for every type of registers. Normally: discrete inputs are from 10001 to 20000 coils are from 1 to 1000 input registers are from 30001 to 40000 holding registers are from 40001 to 60000 Every alias will be mapped internally to address, e.g. 30011 will be mapped to input register 10. and so on.
-
Nabend,
mit diesen Registern / Adressen läuft der ModBus ohne Fehlermeldungen:_address deviceId name description unit type len factor offset formula role room cw isScale 30002 33 Model Number Model-Nummer [OK] string 8 1 0 false false 30010 33 Serial Nummer Seriennummer [OK] string 5 1 0 false false 30025 33 Com Typ 0 = keine, 2 = RS485 [OK] uint16be 1 1 0 false false 30029 33 Memory type 0=No memory,3=8MB,4=16MB Flash[OK] uint16be 1 1 0 false false 30077 33 MID lock status 0=unlocked, 1=locked [OK] uint16be 1 1 0 false false 30104 33 Run Time seconds uint32be 2 1 0 false false 30107 33 Frequency Frequenz (Hz) [OK] Hz uint16be 1 0.01 0 false false 30109 33 U1 Spannung L1 (V) [OK] V uint16be 1 0.1 0 false false 30111 33 U2 Spannung L2 (V) [OK] V uint16be 1 0.1 0 false false 30113 33 U3 Spannung L3 (V) [OK] V uint16be 1 0.1 0 false false 30115 33 Uavg (phase to neutral) [OK] V int16be 1 0.1 0 false false 30116 33 j12 (angle between U1 and U2) [OK] ° int16be 1 0.01 0 false false 30117 33 j23 (angle between U2 and U3) [OK] ° int16be 1 0.01 0 false false 30118 33 j31 (angle between U3 and U1) [OK] ° int16be 1 0.01 0 false false 30120 33 U12 Spannung L12 (V) [OK] V uint16be 1 0.1 0 false false 30122 33 U23 Spannung L23 (V) [OK] V uint16be 1 0.1 0 false false 30124 33 U31 Spannung L31 (V) [OK] V uint16be 1 0.1 0 false false 30128 33 I1 mA Strom I1 (mA) [OK] mA uint16be 1 1 0 false false 30130 33 I2 mA Strom I2 (mA) [OK] mA uint16be 1 1 0 false false 30132 33 I3 mA Strom I3 (mA) [OK] mA uint16be 1 1 0 false false 30138 33 Ivag [OK] mA uint16be 1 1 0 false false 30140 33 S I [OK] mA uint16be 1 1 0 false false 30142 33 Active Power Total (Pt) W int16be 1 0.1 0 false false 30144 33 Active Power Phase L1 Leistung L1 (W) [OK] W int16be 1 0.1 0 false false 30146 33 Active Power Phase L2 Leistung L2 (W) [OK] W int16be 1 0.1 0 false false 30148 33 Active Power Phase L3 Leistung L3 (W) [OK] W int16be 1 0.1 0 false false 30150 33 Reactive Power Total (Qt) Fehler int32be 2 0.1 0 false false 30151 33 Reactive Power Phase L1 (Q1) Fehler var int32be 2 0.1 0 false false 30153 33 Reactive Power Phase L2 (Q2) Fehler var int32be 2 0.1 0 false false 30155 33 Reactive Power Phase L3 (Q3) Fehler var int32be 2 0.1 0 false false 30160 33 Apparent Power Phase L1 (S1) [OK] VA uint16be 1 0.1 0 false false 30162 33 Apparent Power Phase L2 (S2) [OK] VA uint16be 1 0.1 0 false false 30164 33 Apparent Power Phase L3 (S3) [OK] VA uint16be 1 0.1 0 false false 30166 33 Power Factor Total (PFt) [OK] PFt uint16be 1 0.0001 0 false false 30168 33 Power Factor Phase 1 (PF1) [OK] PF1 uint16be 1 0.0001 0 false false 30170 33 Power Factor Phase 2 (PF2) [OK] PF2 uint16be 1 0.0001 0 false false 30172 33 Power Factor Phase 3 (PF3) [OK] PF3 uint16be 1 0.0001 0 false false 32659 33 Internal Temperature Gerätetemperatur [OK] °C floatbe 2 1 0 false false
Jedoch zeigen die Adressen: 30150,30151,30153 und 30155 noch ungenaue Werte.
Ändere ich die Adressen, Werte oder so gibt es einen App Timeout oder andere Fehlermeldungen.
Die Model (Datatyp T_Str16) und Seriennummer (Datatyp T_Str_8) brauche ich ja nicht für die weitere Verarbeitung. Aber war ein Test was ich wie verändern muss um richtige Werte zu bekommen.
Die Seriennummer habe ich aus dem Foto "entfernt". Adressen mit [OK] liefern den richtigen Wert. Wo Fehler steht ist es eine Anmerkung von mir, damit ich diese überprüfen kann.Sobald ich die Energie-Werte auslese werden diese Werte zwar angezeigt aber der Modbus-Adapter meldet dann Fehler.
Leider die Logs vom anderen Rechner nicht mitgenommenDatenblatt oder Modbus PDF vom Finder Support:
Modbus-7M24-7M38_v2_30062021.pdf -
@aherby sagte in Modbus Finder 7M.38.8.400.0212 auslesen:
30150,30151,30153 und 30155
Ich glaub die hast du falsch eingetragen.
Wenn ich das Doc richtig interpretiere ist z.B.
Beinhaltet diese Abfrage:
Beide Register und nicht zwei einzelne.
Also 30151 löschen, länge =2 und Signed 23 Bit einstellen.
Gleiches für die Register der anderen Phasen.
Und kann es sein das du irgendwie verrutscht bist bei der Benennung?
Laut Doc:
Bei dir:
30148 33 Active Power Phase L3 Leistung L3 (W) [OK] W int16be 1 0.1 0 false fals