NEWS
Adapter "smartmeter"
-
Wenn du die stty Befehle aus dem PDF nimmst ist doch alles richtig gesetzt.
WICHTIG: Flow Control und Hardware Handshake müssen ausgeschaltet werden, was mit der oben genannen stty Konfiguration durchgeführt wird.
Kannst du den Kopf mal an einen anderen PORT stecken zum testen?
Hast du auch mal das von Seite 2 versucht?
-
@wendy2702 said in Adapter "smartmeter":
Wenn du die stty Befehle aus dem PDF nimmst ist doch alles richtig gesetzt.
WICHTIG: Flow Control und Hardware Handshake müssen ausgeschaltet werden, was mit der oben genannen stty Konfiguration durchgeführt wird.
Kannst du den Kopf mal an einen anderen PORT stecken zum testen?
Hast du auch mal das von Seite 2 versucht?
Also ich habe von Seite 2 erst
Beispiel für fast alle Stromzähler mit der Baudrate 300:
echo -n -e '\x2F\x3F\x21\x0D\x0A' > /dev/ttyUSB0und dann
nach max. 2 Sekunden den folgenden Befehl senden:
echo -n -e '\x06\x30\x30\x30\x0D\x0A' > /dev/ttyUSB0ausgeführt. Daraufhin bekam ich diese Resource temporarily unavailable Meldung.
Kann gerne mal an einen anderen Port stecken. Muss ich dann nochmal was wegen ttyUSB0 ändern? (ich habe nur 3 USB Ports und nur diesen einen Adapter angeschlossen am Gerät, sonst gar nichts)
-
@digitalnaive
es kann immer nur einer auf den serialport zugreifen.
der Adapter ODER die Konsole -
@Homoran said in Adapter "smartmeter":
@digitalnaive
es kann immer nur einer auf den serialport zugreifen.
der Adapter ODER die KonsoleVielleicht verstehe ich auch deine Aussage nicht richtig, aber warum sollte dann in der PDF stehen, dass man quasi den Adapter via cat anstoßen und im zweiten Terminal Fenster dann den Echo Befehl starten soll?
-
@digitalnaive
weil bei ioBroker mit Adapter der Smartmeter-Adapter gemeint ist, nicht der Lesekopf -
Das Device solltest du sicherheitshalber wieder Prüfen.
Also hast du jetzt das gemacht:
stty -F /dev/ttyUSB0 300 -parodd cs7 -cstopb parenb -ixoff -crtscts -hupcl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echoctl -echoke
Dann ein Fenster geöffnet und
cat /dev/ttyUSB0
Und in einem zweiten Fenster das:
echo -n -e 'Befehl' > /dev/ttyUSB0
oder das:
echo -n -e '\x2F\x3F\x21\x0D\x0A' > /dev/ttyUSB0 nach zwei sekunden--> echo -n -e '\x06\x30\x30\x30\x0D\x0A' > /dev/ttyUSB0
Und wie @Homoran schreibt, entweder Adapter aktiv oder CAT nutzen.
-
@wendy2702 said in Adapter "smartmeter":
echo -n -e 'Befehl' > /dev/ttyUSB0
Also, der Adapter ist in iobroker deaktiviert. Mit dmesg | grep tty bekomme ich folgende Anzeige:
digitalnaive@asrock:~$ sudo dmesg | grep tty [ 0.000000] console [tty0] enabled [ 7.820332] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0 [19339.786752] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 [19343.305426] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB0
Dann hab ich wieder deine Kette befolgt @wendy2702 und bekomme direkt nach dem ersten Echo im zweiten Fenster wieder die Meldung:
digitalnaive@asrock:~$ sudo cat /dev/ttyUSB0 cat: /dev/ttyUSB0: Resource temporarily unavailable
Noch eine Ergänzung. Der Adapter scheint zu gehen. Als ich ihm mit der Taschenlampe des Handys draufgeleuchtet habe, hat die LED grün geblinkt.
Das habe ich gerade noch im Datenblatt des Stromzählers gefunden:
Optische Schnittstelle, Serielle Schnittstelle RS-485 bzw. RS-232 oder
M-Bus. Konfigurierbare Übertragungsgeschwindigkeit von 300 Bd
bis 9600 Bd. Protokoll-Unterstützung EN 62056-21 (IEC1107), DLMS
(optional). -
@digitalnaive sagte in Adapter "smartmeter":
Optische Schnittstelle, Serielle Schnittstelle RS-485 bzw. RS-232 oder
M-Bus. Konfigurierbare Übertragungsgeschwindigkeit von 300 Bd
bis 9600 Bd. Protokoll-Unterstützung EN 62056-21 (IEC1107), DLMS
(optional).Hatte ich bereits ganz zu Anfang gepostet
-
@Homoran said in Adapter "smartmeter":
@digitalnaive sagte in Adapter "smartmeter":
Optische Schnittstelle, Serielle Schnittstelle RS-485 bzw. RS-232 oder
M-Bus. Konfigurierbare Übertragungsgeschwindigkeit von 300 Bd
bis 9600 Bd. Protokoll-Unterstützung EN 62056-21 (IEC1107), DLMS
(optional).Hatte ich bereits ganz zu Anfang gepostet
Sorry, habe ich in der Flut der Nachrichten übersehen. War keine Absicht.
-
Meine Kette? Das war eigentlich eine Frage an dich damit wir wissen was du gemacht hast.
Vielleicht postest du einfach das logfile von deinen Befehlen.
Hast du eigentlich den NUC mal neu gestartet und was ist mit meiner Frage nach Serialport ?
-
@wendy2702 said in Adapter "smartmeter":
Meine Kette? Das war eigentlich eine Frage an dich damit wir wissen was du gemacht hast.
Vielleicht postest du einfach das logfile von deinen Befehlen.
Hast du eigentlich den NUC mal neu gestartet und was ist mit meiner Frage nach Serialport ?
Mit deiner Kette meinte ich deinen Post darüber, in der du auf die Einhaltung des Ablaufes bzlg der Echo Befehle hingewiesen hast. Ich meinte damit nur, dass ich es exakt so der Abfolge umgesetzt hatte mit dem Ergebnis wie im Post von mir dann beschrieben.
Den Nuc habe ich schon mehrmals sicherheitshalber neugestartet. Meinst du mit deiner Frage nach dem Serial ob ich mal an einen anderen USB-Port gesteckt habe? Ja das hab ich gestern gemacht und anschließend den NUC neugestartet.
Mit dmesg | grep tty kommt folgende Info:
[ 0.000000] console [tty0] enabled [ 7.460689] usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB0
-
was ergibt denn die Eingabe von
ls /dev/serial/by-id/
-
@Röstkartoffel said in Adapter "smartmeter":
ls /dev/serial/by-id/
usb-FTDI_FT230X_Basic_UART_DN068A03-if00-port0
-
so und nun wie @wendy2702 es gesagt hat (wie ich es verstanden habe):
Putty (SSH) zweimal öffnen.
im ersten Fenster das Kommandocat /dev/ttyUSB0
Und in dem zweiten Fenster das:
echo -n -e '\x2F\x3F\x21\x0D\x0A' > /dev/ttyUSB0
Beobachten was jetzt im ersten Fenster passiert
(sollte sowas wie "/PAF5EC3g00006" rauskommen)Nach 1 bis 2 sec. dann im zweiten Fenster
echo -n -e '\x06\x30\x30\x30\x0D\x0A' > /dev/ttyUSB0
Und wieder beobachten was jetzt im ersten Fenster passiert
(sollten jetzt ein paar Daten rauskommen) -
@Röstkartoffel said in Adapter "smartmeter":
echo -n -e '\x2F\x3F\x21\x0D\x0A' > /dev/ttyUSB0
Das habe ich ja leider bereits schonmal gemacht und bekomme folgende Meldung:
root@asrock:/home/digitalnaive# cat /dev/ttyUSB0 cat: /dev/ttyUSB0: Resource temporarily unavailable
-
@digitalnaive sagte in Adapter "smartmeter":
cat: /dev/ttyUSB0: Resource temporarily unavailable
Mal noch ne Frage zum verwendeten Betriebsystem. Was genau bedeutet Linux Server?
Mit irgendeiner Klicki Bunti Oberfläche ?
Was genau hast du auf dem NUC Installiert?
Und was ist mit meiner Frage zum Serialport Package?
Für mich sieht es so aus als wenn irgendetwas den Port schon belegt...
Mal mit TOP geschaut welche Prozesse da so laufen?
Bitte mal das Abfragen:
ls -l /dev/ttyUSB*
-
@wendy2702 said in Adapter "smartmeter":
@digitalnaive sagte in Adapter "smartmeter":
cat: /dev/ttyUSB0: Resource temporarily unavailable
Mal noch ne Frage zum verwendeten Betriebsystem. Was genau bedeutet Linux Server?
Mit irgendeiner Klicki Bunti Oberfläche ?
Was genau hast du auf dem NUC Installiert?
Und was ist mit meiner Frage zum Serialport Package?
Für mich sieht es so aus als wenn irgendetwas den Port schon belegt...
Mal mit TOP geschaut welche Prozesse da so laufen?
Installiert habe ich Ubuntu 18.04.1 LTS \n \l ist meines Wissens mit GUI
Großartig installiert hab ich soweit eigentlich nichts außer alle iobroker Adapter. Der NUC ist soweit nur für iobroker gedacht. Am Gerät selbst ist nichts weiter angeschlossen.
Ich finde leider deine Frage nach dem Serialport Package nicht?
top - 13:23:04 up 5:22, 2 users, load average: 0.15, 0.25, 0.19 Tasks: 210 total, 1 running, 158 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.4 us, 0.8 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st KiB Mem : 7831052 total, 5195336 free, 1843308 used, 792408 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 5704952 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1453 root 20 0 1278820 116656 24048 S 4.3 1.5 18:43.33 iobroker.js-con 1822 root 20 0 1138636 133912 23628 S 1.3 1.7 4:20.70 io.javascript.0 1955 root 20 0 1073420 130612 23960 S 1.3 1.7 5:29.40 node-red 13762 root 20 0 42936 4160 3400 R 1.3 0.1 0:01.39 top 1366 root 20 0 301376 39428 21712 S 0.7 0.5 1:22.65 Xorg 1475 digital+ 20 0 1918368 49828 8344 S 0.7 0.6 1:46.12 sabnzbdplus 1567 lightdm 20 0 646224 33568 27324 S 0.7 0.4 1:40.35 slick-greeter 1716 root 20 0 1079472 67644 24380 S 0.7 0.9 0:18.10 io.cloud.0 1747 root 20 0 990052 48036 23568 S 0.7 0.6 1:19.97 io.ping.0 2124 root 20 0 1009596 67444 23880 S 0.7 0.9 0:56.88 io.modbus.0 1153 mysql 20 0 1482780 187744 14848 S 0.3 2.4 0:35.29 mysqld 1761 root 20 0 1012372 64224 23644 S 0.3 0.8 0:44.00 io.hm-rega.0 1892 root 20 0 994596 56560 23680 S 0.3 0.7 0:14.40 io.node-red.0 1920 root 20 0 998852 59548 23676 S 0.3 0.8 0:15.94 io.hm-rpc.0 1945 root 20 0 1003320 52248 23732 S 0.3 0.7 0:16.69 io.hm-rpc.1 2037 root 20 0 987584 49216 23728 S 0.3 0.6 0:16.22 io.mihome.0 2052 root 20 0 1212400 68844 24528 S 0.3 0.9 0:45.86 io.alexa2.0 2085 root 20 0 1000388 62916 24228 S 0.3 0.8 0:13.35 io.unifi.0 2114 root 20 0 988272 49172 23632 S 0.3 0.6 0:14.79 io.scenes.0 1 root 20 0 225864 9820 6892 S 0.0 0.1 0:05.58 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 7 root 20 0 0 0 0 S 0.0 0.0 0:00.53 ksoftirqd/0 8 root 20 0 0 0 0 I 0.0 0.0 0:26.59 rcu_sched 9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh 10 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/0 11 root rt 0 0 0 0 S 0.0 0.0 0:00.12 watchdog/0 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 14 root rt 0 0 0 0 S 0.0 0.0 0:00.13 watchdog/1 15 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/1 16 root 20 0 0 0 0 S 0.0 0.0 0:00.79 ksoftirqd/1 18 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2 20 root rt 0 0 0 0 S 0.0 0.0 0:00.13 watchdog/2 21 root rt 0 0 0 0 S 0.0 0.0 0:00.03 migration/2 22 root 20 0 0 0 0 S 0.0 0.0 0:00.52 ksoftirqd/2 24 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/2:0H 25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3 26 root rt 0 0 0 0 S 0.0 0.0 0:00.13 watchdog/3 27 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/3 28 root 20 0 0 0 0 S 0.0 0.0 0:00.36 ksoftirqd/3 30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/3:0H 31 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kdevtmpfs
für deinen ls Befehl hab ich folgenden output
crw-rw---- 1 root dialout 188, 0 Feb 15 12:22 /dev/ttyUSB0
-
Ich habe ein Update für euch. Auf Wunsch von Weidmann Elektronik habe ich den Lesekopf via Test Software unter Windows angeschlossen und getestet. Ich konnte bidirektional mit 300 7E1 den Kopf auslesen. Siehe Screenshot:
Jetzt ist die große Preisfrage, wie bekomme ich ihn unter Linux zum laufen.
Hat jemand netterweise für mich die Befehle, die ich bräuchte um ihn quasi nochmal zu reseten und neu einzubinden? Vllt hab ich ja da einen entscheidenden Fehler gemacht?
-
@wendy2702 sagte in Adapter "smartmeter":
Also früher musste man noch das Paket Serialport manuell installieren.
Schau mal in /opt/iobroker/node_modules/iobroker.modbus/node_modules/serialport was in der package.json steht ... Die Version zählt am Ende und ob es das bei dir überhaupt gibt.
Sonst: iobroker stoppen und das Paket nach installieren.
cd /opt/iobroker
npm i serialportHier nochmal meine Frage zu Serialport.
-
@digitalnaive sagte in Adapter "smartmeter":
Ich hab sowohl BAUD 300 als auch 9600 mit D0 und mit SML probiert. Immer die gleichen Ergebnisse
smartmeter.0 2019-02-14 16:10:05.214 debug SET MESSAGE TIMEOUT TIMER2: 120000 smartmeter.0 2019-02-14 16:10:05.214 debug DONE SEND 0 smartmeter.0 2019-02-14 16:10:05.214 debug INITIAL MESSAGES TO SEND: 0 smartmeter.0 2019-02-14 16:10:05.211 debug SERIALPORT RESET BAUDRATE TO 9600 smartmeter.0 2019-02-14 16:10:05.210 debug SERIALPORT OPEN smartmeter.0 2019-02-14 16:10:05.207 debug CREATE SERIALPORT: 9600 7 1 even smartmeter.0 2019-02-14 16:10:05.204 debug SCHEDULE NEXT RUN IN 0s smartmeter.0 2019-02-14 16:10:05.204 debug DELETE rest of data (0) because new Message start with a new Request Message smartmeter.0 2019-02-14 16:10:05.204 debug SERIALPORT REMOVE LISTENERS smartmeter.0 2019-02-14 16:10:05.204 debug SERIALPORT CLOSE smartmeter.0 2019-02-14 16:10:05.203 debug CLEAR MESSAGE TIMEOUT TIMER smartmeter.0 2019-02-14 16:10:05.203 debug STOP smartmeter.0 2019-02-14 16:10:05.203 debug Transport Reset!! Restart = true smartmeter.0 2019-02-14 16:10:05.203 debug Error: No or too long answer from Serial Device after last request. smartmeter.0 2019-02-14 16:10:05.202 warn No or too long answer from Serial Device after last request.
Noch ne kleine Debug Info die ich gerade sehe:
host.asrock 2019-02-14 16:11:15.979 info instance system.adapter.smartmeter.0 terminated with code 0 (OK) host.asrock 2019-02-14 16:11:15.458 info stopInstance system.adapter.smartmeter.0 killing pid 3384 host.asrock 2019-02-14 16:11:15.457 info stopInstance system.adapter.smartmeter.0
Hier ist meiner Meinung nach kein Serialport-Error zu erkennen. Also diese Einstellungen nochmal machen, aber bitte bei der ersten Einstellung (Data Request Interval) mal bitte 60 eintragen, wenn du da immer noch ne "0" drin zu stehen hast wird schon das nächste Abfragen gestartet, obwohl noch gar nichts ausgelesen wurde! Irgendwo hatte ich gelesen, dass dein Zähler sehr langsam sein soll! Momentanverbrauch geht sowieso nicht, dann reichen auch 60 sek.
Wenn du jetzt probierst zeig doch bitte nochmal einen Screenshot deiner Einstellungen.Enrico