NEWS
Einbindung FS20-Komponenten
-
Die Baudrate ist um einiges höher sls beim busware cul, dort sind es 9600.
Kann sein, dass deswegen das delay nötig ist.
Ich würde das dann mit meinem busware cul gegentesten. Habe aber nur einen Erschütterungssensor.
Gruß Rainer
-
Hallo,
ich hatte in dem Java code, auch ESA gesehen.
Ich Habe einen ESA2000WZ an FHEM am laufen(schon sei Jahren zuverlässig).
Mein nanoCUL868 empfängt nun auch die EsaMessages.
S7F3CF9011E000687B80004000000014B2B
S003CF9011E000687BB0003000000014B2B
S013CF9011E000687BF0004000000014B2F
S033CF9011E000687C60003000000014B2D
S053CF9011E000687CE0004000000014B2E
S853CF9011E000687CE0004000000014B2E
in der CUL-Adapter Version 0.2.0 war ESA noch drin. Bei der Vesion 0.3.0 fehlt das jetzt.
Die esa.js zeigt nur einen Rumpf,
module.exports.parse = function (raw) {
var message = {
protocol: 'ESA'
};
return message;
};
da fehlt der ganze Teil der Decodierung.
Gibt es da schon was?
Ich bräuchte den ESA2000WZ im iobroker.
Gibt es da schon was?
Wird denn an dem CUL-Adapter noch regelmässig gearbeitet?
Kann man da irgendwo unterstützen?
Gruß Mickbaer aus Berlin
-
ESA war früher drin?! Das wäre komisch.
Wir benutzen die cul Library von hobbyquaker https://github.com/hobbyquaker/cul
Der Adapter kann daher alles was die Library parsen kann.
ESA steht auf Todo. Kannst anschauen wie die anderen protokollparser tun und esa implementieren. Hobbyquaker nimmt pullrequests gern an.
-
Hallo,
Ich habe den CUL-Adapter 0.3.0 von Github installiert.
(neuste Version)
Auch in dieser Version wird mein nanoCUL868 FW 1.63, an ttyUSB0 nicht richtig initialisiert.
Ich habe diesen Bug, fixen können, durch die Änderung der Initsequenz auf:
Buadrate: 38400
V\r\n
delay(1000ms)
X21\r\n
T01\r\n
Danach antwortet der nanoCUL868 wie gewünscht, entsprechend wie er es auch schon in FHEM gemacht hat,
auch im iobroker. `
Was sendet der Adapter denn wenn Du nichts änderst?
"V" gibt nur die Version aus. Sollte daher eigentlich keinerlei Auswirkungen haben. Kommt eine Versionsausgabe?
"T01" gibt den aktuell gesetzten Hauscode aus. Also auch das sollte keine Auswirkung haben.
"X21" ist damit das einzig interessante Kommando. Es sind Bits 0 und 5 gesetzt, was bedeutet:
Bit 0: Report known messages (parity & checksum ok), with type prefix.
Bit 5: RSSI: report RSSI value as an additional HEX byte after digested data or as a separate byte if Bit 3 is set too.
Der Adapter sendet X21\r\n zur Initialisierung.
Ich habe auch in Google nichts gefunden was Deine Erfahrungen "belegt" oder begründet.
Kannst Du mal verschiedene Initialisierungsvarianten (Also mal ohne das V oder ohne das T01 oder wirklich nur X21 als erstes) ausprobieren und Deine Erfahrungen zu berichten?!
Ich hänge hier die beiden Dateien an,
/opt/iobroker/node-modules/iobroker.cul/cul.js => Datei1-cul.js
/opt/iobroker/node-modules/iobroker.cul/node-modules/cul/cul.js =>Datei2-cul.js
die ich gepatcht habe.
Mit diesen beiden, hart gepatchten dateien, kann Ich jetzt meine
FS20 S4A-2
FS20S19
Fernbedinungen auch im iobroker empfangen.
Ich hoffe die Entwickler des CUL-Adapters, können diesen Patch an den richtigen Stellen in ihren Adapter einbauen
und in der nächsten Version allen usern zur Verfügung stellen.
Gruss Mickbaer aus Berlin `
Ja sehr hart gepatchtDen einen Teil müsste man als Pullrequest in der "cul" Library einreichen. Dazu muss ich das aber verstehen weil ich nicht weiss warum Dein Stick das so braucht und andere scheinbar tun.
Die Änderung am Adaptercode selbst is unnötig weil Du per AdapterKonfig die Baudrate setzen kannst. Das muss nicht hart kodiert werden.
-
Um sicherzustellen was wirklich gesendet wird habe ich das Logging in der Library geändert.
Bitte Adapter neu von Github installieren. Version bleibt gleich. Es muss lokal git installiert sein weil die cul Library direkt von meinem Fork genommen wird.
Dann gibt es mehr Logging per "info", nämlich alles was gesendet oder empfangen wird.
Bitte das Log schicken/checken.
Ich kann dann so je nach Ergebnissen weitere Versionen liefern zum testen.
-
Hallo apollon77,
Ich habe mich über eine Woche mit der Analüse dieses Problems beschäftigen dürfen,
was ich garnicht wollte. :roll:
Denn Ich wollte den CUL-Adapter im iobroker benutzen und nicht erst großartige Fehleranalüse und reparatur betreiben.
Ich habe das Internet quer und längs gelesen, und in diesem Blog, das naheliegenste gefunden.
Mehre Besitzer eines nachbau CUL's haben ja im Netzt, genau mein Problem beschrieben.
Die Antworten die Sie erhalten haben sind teilweise Hahnebüchen, :lol:
und haben mich auch dazu gebracht, sich diesem Problem
einmal anzunehmen und eine Lösung zu presentieren.
Immer wieder liest man, da Antworten von Leuten, die die Hardware garnicht haben,
und dann Sachen schreiben, die sie nicht einmal selbst testen konnten.
Sorry aber das musste mal gesagt werden. :oops:
So nun zu deinen Fragen,
Klar sendet die original version 0.2.0 und 0.3.0
am ende ein X21, welches aus mehreren Teilen für den CUL zusammengebaut wird.
Klar kann ich die Baudrate über das Menue einstellen, aber um sicher zu gehen,
es gibt da einen Haufen .js dateien, da war es sehr schwer für mich da die richtigen Stellen zu finden,
darum dieser harte Patch, damit ich mir sicher bin, was ich da mache.
Wie du aus den screen shots siehst, habe ich die Kommunikation,
mittels externem Seirellen Monitor, für beide seriellen Richtungen von und zum CUL gemonitort um das problem zu erfassen.
Noch unklar für mich ist, das im Program immer ttxAMA0 steht, die Seriellen Ausgaben aber auf ttyUSB0 gesendet werden.
Aber egal, mein CUL steckt am ttyUSB0, und braucht 38400 Bd, 8 N 1 CR LF um angesprochen zu werden.
(so wie er es von meiner laufenden Hausautomatisierung mit FHEM gewohnt ist,
und jetzt nur nach iobroker umziehen soll.)
Ob die original version, CR LF sendet, da bin ich mir nicht ganz klar geworden, zu mindestens, das X21 habe ich gesehen,
aber damit läuft der nanoCul nicht an, das sieht man daran, das beim drücken einer Taste an der Fernbedienung,
die LED nicht unregelmässig blinkt und er sich wie tot stellt.
Also die Abfolge, X21 und dann CR LF kommt zuschnell aufeinander und damit versteht der nanoCUL das Kommando nicht.
Na klar habe ich alle erdenklichen Möglichkeiten durch probiert, alles ohne Erfolg.
Die Lösung brachte dann der Trace vom FHEM system, wo es ja seit Jahren problemlos läuft.
Und siehe da, FHEM macht das mit:
38400bd
V\r\n
V\r\n
X21\r\n
T01\r\n
und auch damit kam der nanoCUl, aus dem CUL-Adapter gesendet nicht klar.
Er hat zwar reagiert, aber nur mit wirren Antworten.
Erst die delay, und das auch nur in dieser, ich gebe es zu, merkwürdigen Form, ich habe nichts anderes gefunden,
ich programmiere nicht täglich in JAVA-Script.
Also langer Rede, kurzer Sinn,
der nanoCul, braucht anscheinend zur ersten Initialiserung,
ein wenig mehr zeit, und somit sendet FHEM, als erstes ein V, mit \r\n und dann wird dem nanoCUL etwas zeit gegeben,
um seine Antwort zu senden.(siehe mein Screenshot mit den grünen logs.)
Wenn sich dann alles beruhigt hat, sendet FHEM, das zweite V\r\n,
um sicher zu gehen das es auch verstanden wurde.
Auch hier wieder dem nanoCUL zeit lassen, das er Antworten kann.
Erst jetzt kommt das setzen der Initialisierung
X21\r\n
und weil es hier vom nanoCUL darauf keine Antwort gibt(das ist normal)
wird das
T01\r\n
hinter her gesendet, damit durch die Antwort vom nanoCUL sicher gestelt ist, das er für weitere kommandos bereit ist.
Wenn man wollte, könnten alle Antworten des nanoCUL auch noch ausgewertet werden,
dann wüsste der CUL-Adapter auch 100% ob die kommunikation auch richtig steht.
Aber im CUL-Adapter wird nur auf einen seriellen ERROR, nicht auf die Antworten geprüft….
Erst dieser ganze Ablauf, hat zum Erfolg geführt.
Ich habe da alle Varianten durchgespielt.
Auch eine verkürzung der delay's habe ich ohne erfolg durch probiert.
Nur die diese Variante,
V\r\n
delay(1000ms)
X21\r\n
T01\r\n
hat dann den Erfolg gebracht.
(hat mich eine Woche, jeden Abend, zig Stunden gekostet) :shock:
Aber jetzt ist es schön zu sehen, wie auf dem Monitor, die empfangenen Daten durchlaufen
tA0B555155EE1
tA0B455055CE4
tAEB4720728E5
tA0B455055CE5
tA0B455055CE5
S243CF9011E00068D700026000000014B2C :roll:
tA0B455055CE5
S253CF9011E00068D920022000000014B2D :roll:
SA53CF9011E00068D920022000000014B2D :roll:
tAEB4720728E6
tAEB4720728E5
tA0B455055CE6
tA0B4548542E6
tAEB4720728E7
tA0B4548542E7
SA83CF9011E00068D9D0003000000014B2F :roll:
tA0B4548542E6
tAEB4720728E1
Da ich mich in den JAVA-Scripten noch nicht so gut auskenne,
hatte Ich ja angeregt, meine bescheidenen Erfahrungen,
V\r\n
delay(1000ms)
X21\r\n
T01\r\n
zur Initialisierung des nanoCUL in den CUL-Adapter zu übernehmen.
Da gibt es bestimmt Jemanden, der das an die richtigen Stellen rücken kann.
Anregung:
Es wäre doch auch möglich per MENU neben dem CUL, auch einen nanoCUL,
mit dann den entsprechneden Änderungen einzubauen.? Das stört doch dann keinen.
Das mit der neuen Version auf Github, werde ich mir ansehe, dafür ist es jetzt ein wenig zu früh am Morgen.
Ich melde mich die Tage, wenn Ich es getestet habe, dann zurück.
Gruß Mickbaer aus Berlin
-
Ok, also nähern wir uns mal.Hast Du mal den Link zu dem "Blog Beitrag" den du gefunden hattest?!
Meine aktuelle Vermutung ist ggf das der Stick erstmal ein Kommando zum "aufwachen" braucht und dafür nimmt FHEM das "V" und das fällt ihm dann manchmal runter.
Auf Github ist jetzt eine Version die erstmal ein "V" sendet, die Antwort ignoriert und 1s wartet. Dann sendet Sie das X21 als Init.
Teste bitte mal ob es damit schon tut? Wenn nein bauen wir weiter bis es geht.
Ich möchte mich gern dem Minimum nötigen nähern.
-
Ok, also nähern wir uns mal.Hast Du mal den Link zu dem "Blog Beitrag" den du gefunden hattest?!
Meine aktuelle Vermutung ist ggf das der Stick erstmal ein Kommando zum "aufwachen" braucht und dafür nimmt FHEM das "V" und das fällt ihm dann manchmal runter.
Auf Github ist jetzt eine Version die erstmal ein "V" sendet, die Antwort ignoriert und 1s wartet. Dann sendet Sie das X21 als Init.
Teste bitte mal ob es damit schon tut? Wenn nein bauen wir weiter bis es geht.
Ich möchte mich gern dem Minimum nötigen nähern. `
Hallo,sorry für die Verzögerung, aber Ich bin erst jetzt dazu gekommen hier weiter zu machen.
wenn Ich die Version 0.3.0 von Github lade dann hat sich da nix geändert, es sendet wie bisher nur X21, von V ist da nix zu sehen.
wenn ich dies versuche zu laden, https://github.com/ioBroker/ioBroker.cu … 961fd64f6f
dann gibt es nur Fehlermeldungen. Siehe angehängtem Bild.
Bitte gib die Github adresse an wo ich deine geforcte version runterladen kann.
Danke und Gruß Mickbaer
5817_cul-adapter-not_loadable.png -
Nachtrag,
bin gerade auf diesen Beitrag
> maxcul ist komplett unbrauchbar (geloest)
gestolpert.Da ist ja auch an einer Stelle ein Bezug zu diesem Beitrag drin.
Das was der MAX-Cul da zur Intialiesrung braucht, ist für den nanoCul auch wichtig.
Sollte bitte auch eingebaut werden. :roll:
38400bd, 8 n1,
und zu Beginn das V\r\n senden zur Initialisierung,
dann auf die Antwort warten und auswerten, heißt den epfangenen String lesen bis \r da war.
Erst dann steht die Kommunikation.
Ich hoffe das hilft den CUL-Adapter jetzt zu reparieren.
und auf einen neue Version 0.3.1 hoch zu ziehen, damit man auch sicher ist, das wir über die richtige Version reden.
Gruß Mickbaer aus Berlin
-
Hi,
maxcul hatte andere probleme als cul …
Bitte URL https://github.com/ioBroker/ioBroker.cul/ für custom-install nutzen.Dann müsste die 0.3.0 kommen
-
Hi,
maxcul hatte andere probleme als cul …
Bitte URL https://github.com/ioBroker/ioBroker.cul/ für custom-install nutzen.Dann müsste die 0.3.0 kommen `
Hallo,
habe jetzt mit deinem geposteten Link den CUL-adapter neu geladen.
Das V wird jetzt gesendet, gefolgt vom X21, aber das reicht nicht zum wecken.
Der naoCUL stellt sich tot.
Was sendest Du? genau, ?
Warum folgst Du nicht meinem Hinweis,
aus meinem Post wo Ich das alles Hard-gepatcht hatte,
da steht die benötigte Initsequenz genau drin,
wo ich in langwierigen Experimenten nach allen Richtungen alles ausgetestet habe,
und wie es auch in FHEM gemacht wir?
Gruß Mickbaer aus Berlin
-
habe jetzt mit deinem geposteten Link den CUL-adapter neu geladen.
Das V wird jetzt gesendet, gefolgt vom X21, aber das reicht nicht zum wecken.
Der naoCUL stellt sich tot. `
Hm … und das ist interessant weil komplett unverständlich.
Was sendest Du? genau, ? `
Das was im Log steht. Bitte poste das mal damit ich das auch sehe.
Warum folgst Du nicht meinem Hinweis,
aus meinem Post wo Ich das alles Hard-gepatcht hatte,
da steht die benötigte Initsequenz genau drin,
wo ich in langwierigen Experimenten nach allen Richtungen alles ausgetestet habe,
und wie es auch in FHEM gemacht wir? `
Ich habe das oben mehrfach geschrieben und auch transparent gesagt WARUM ich erstmal nur das V eingebaut habe.
Ich muss ggf. dem Entwickler der cul library genau sagen können warum ich eine Änderung an seiner Library vorschlage. Das kann ich nur wenn ich es selbst genau weiss und verstehe. Daher das Schrittweise vorgehen. Bitte auch lesen was ich schreibe auch wenn es Dir nicht gefällt.
Ich habe jetzt noch das "T01" angehängt. Bitte daher nochmals von github installieren
Ich brauche bitte BEIDE Logs - also so wie es jetzt ist und auch wie die neue Version tut.
Danke
-
Hallo,
was ist denn da unverständlich?
Na klar habe ich alles, auch mehrfach genau gelesen…
What ever...
hier ist der erste log, wo nur V drin war.
cul.0 2018-02-25 23:15:44.700 info }
cul.0 2018-02-25 23:15:44.700 info }
cul.0 2018-02-25 23:15:44.700 info }
cul.0 2018-02-25 23:15:44.700 info return prop;
cul.0 2018-02-25 23:15:44.700 info if (this[prop] === value)
cul.0 2018-02-25 23:15:44.700 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:44.700 info for (var prop in this) {
cul.0 2018-02-25 23:15:44.700 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.688 info }
cul.0 2018-02-25 23:15:43.688 info }
cul.0 2018-02-25 23:15:43.688 info }
cul.0 2018-02-25 23:15:43.688 info return prop;
cul.0 2018-02-25 23:15:43.688 info if (this[prop] === value)
cul.0 2018-02-25 23:15:43.688 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.688 info for (var prop in this) {
cul.0 2018-02-25 23:15:43.688 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.590 info }
cul.0 2018-02-25 23:15:43.590 info }
cul.0 2018-02-25 23:15:43.590 info }
cul.0 2018-02-25 23:15:43.590 info return prop;
cul.0 2018-02-25 23:15:43.590 info if (this[prop] === value)
cul.0 2018-02-25 23:15:43.590 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.590 info for (var prop in this) {
cul.0 2018-02-25 23:15:43.590 info starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.cul, node: v6.12.3 getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.524 info }
cul.0 2018-02-25 23:15:43.524 info }
cul.0 2018-02-25 23:15:43.524 info }
cul.0 2018-02-25 23:15:43.524 info return prop;
cul.0 2018-02-25 23:15:43.524 info if (this[prop] === value)
cul.0 2018-02-25 23:15:43.524 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.524 info for (var prop in this) {
cul.0 2018-02-25 23:15:43.524 info States connected to redis: 127.0.0.1:6379 getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.511 debug }
cul.0 2018-02-25 23:15:43.511 debug }
cul.0 2018-02-25 23:15:43.511 debug }
cul.0 2018-02-25 23:15:43.511 debug return prop;
cul.0 2018-02-25 23:15:43.511 debug if (this[prop] === value)
cul.0 2018-02-25 23:15:43.511 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.511 debug for (var prop in this) {
cul.0 2018-02-25 23:15:43.511 debug statesDB connected getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.453 debug }
cul.0 2018-02-25 23:15:43.453 debug }
cul.0 2018-02-25 23:15:43.453 debug }
cul.0 2018-02-25 23:15:43.453 debug return prop;
cul.0 2018-02-25 23:15:43.453 debug if (this[prop] === value)
cul.0 2018-02-25 23:15:43.453 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.453 debug for (var prop in this) {
cul.0 2018-02-25 23:15:43.453 debug objectDB connected getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:15:41.729 info instance system.adapter.cul.0 started with pid 15096
host.ioBroker-Pi 2018-02-25 23:15:39.221 info instance system.adapter.cul.0 terminated with code 0 (OK)
host.ioBroker-Pi 2018-02-25 23:15:39.157 info stopInstance system.adapter.cul.0 killing pid 11608
host.ioBroker-Pi 2018-02-25 23:15:39.155 info stopInstance system.adapter.cul.0
cul.0 2018-02-25 23:15:39.173 info }
cul.0 2018-02-25 23:15:39.173 info }
cul.0 2018-02-25 23:15:39.173 info }
cul.0 2018-02-25 23:15:39.173 info return prop;
cul.0 2018-02-25 23:15:39.173 info if (this[prop] === value)
cul.0 2018-02-25 23:15:39.173 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:39.173 info for (var prop in this) {
cul.0 2018-02-25 23:15:39.173 info terminating getKeyByValue=function (value) {
hier der log mit der T01 änderung,
Aber ich sage vorraus , währen der Adapter sicj installiert, das geht auch nicht.
es wird :
V\r\n
delay(min 700ms)
Vr\n
X21
T01
gebraucht,
Was gibt es da nicht zu verstehen.
Ich hatte ausführlich erklärt warum.
Wenn es da fragen gibt dan frag doch was du da nicht verstehst.
Ich kann es dir bestimmt erklären.
SO hier ist der LOG
Wie ich es vorher gesagt habe,
der nanoCull stellt sich tot.
so hier der LOG
cul.0 2018-02-25 23:26:56.812 info }
cul.0 2018-02-25 23:26:56.812 info }
cul.0 2018-02-25 23:26:56.812 info }
cul.0 2018-02-25 23:26:56.812 info return prop;
cul.0 2018-02-25 23:26:56.812 info if (this[prop] === value)
cul.0 2018-02-25 23:26:56.812 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:56.812 info for (var prop in this) {
cul.0 2018-02-25 23:26:56.812 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:26:56.807 info }
cul.0 2018-02-25 23:26:56.807 info }
cul.0 2018-02-25 23:26:56.807 info }
cul.0 2018-02-25 23:26:56.807 info return prop;
cul.0 2018-02-25 23:26:56.807 info if (this[prop] === value)
cul.0 2018-02-25 23:26:56.807 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:56.807 info for (var prop in this) {
cul.0 2018-02-25 23:26:56.807 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:26:55.794 info }
cul.0 2018-02-25 23:26:55.794 info }
cul.0 2018-02-25 23:26:55.794 info }
cul.0 2018-02-25 23:26:55.794 info return prop;
cul.0 2018-02-25 23:26:55.794 info if (this[prop] === value)
cul.0 2018-02-25 23:26:55.794 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:55.794 info for (var prop in this) {
cul.0 2018-02-25 23:26:55.794 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:26:55.684 info }
cul.0 2018-02-25 23:26:55.684 info }
cul.0 2018-02-25 23:26:55.684 info }
cul.0 2018-02-25 23:26:55.684 info return prop;
cul.0 2018-02-25 23:26:55.684 info if (this[prop] === value)
cul.0 2018-02-25 23:26:55.684 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:55.684 info for (var prop in this) {
cul.0 2018-02-25 23:26:55.684 info starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.cul, node: v6.12.3 getKeyByValue=function (value) {
cul.0 2018-02-25 23:26:55.605 info }
cul.0 2018-02-25 23:26:55.605 info }
cul.0 2018-02-25 23:26:55.605 info }
cul.0 2018-02-25 23:26:55.605 info return prop;
cul.0 2018-02-25 23:26:55.605 info if (this[prop] === value)
cul.0 2018-02-25 23:26:55.605 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:55.605 info for (var prop in this) {
cul.0 2018-02-25 23:26:55.605 info States connected to redis: 127.0.0.1:6379 getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:26:53.833 info instance system.adapter.cul.0 started with pid 15917
host.ioBroker-Pi 2018-02-25 23:26:51.345 info instance system.adapter.cul.0 terminated with code 0 (OK)
cul.0 2018-02-25 23:26:51.322 info }
cul.0 2018-02-25 23:26:51.322 info }
cul.0 2018-02-25 23:26:51.322 info }
cul.0 2018-02-25 23:26:51.322 info return prop;
cul.0 2018-02-25 23:26:51.322 info if (this[prop] === value)
cul.0 2018-02-25 23:26:51.322 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:51.322 info for (var prop in this) {
cul.0 2018-02-25 23:26:51.322 info terminating getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:26:51.301 info stopInstance system.adapter.cul.0 killing pid 15861
host.ioBroker-Pi 2018-02-25 23:26:51.300 info stopInstance system.adapter.cul.0
host.ioBroker-Pi 2018-02-25 23:26:51.292 info object change system.adapter.cul.0
cul.0 2018-02-25 23:26:37.245 info }
cul.0 2018-02-25 23:26:37.245 info }
cul.0 2018-02-25 23:26:37.245 info }
cul.0 2018-02-25 23:26:37.245 info return prop;
cul.0 2018-02-25 23:26:37.245 info if (this[prop] === value)
cul.0 2018-02-25 23:26:37.245 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:37.245 info for (var prop in this) {
cul.0 2018-02-25 23:26:37.245 info List of port: [{"comName":"/dev/ttyAMA0"},{"comName":"/dev/ttyS0"},{"manufacturer":"1a86","pnpId":"usb-1a86_USB2.0-Serial-if00-port0","vendorId":"1a86","productId":"7523","comName":"/dev/ttyUSB0"}] g
cul.0 2018-02-25 23:26:36.222 error }
cul.0 2018-02-25 23:26:36.222 error }
cul.0 2018-02-25 23:26:36.222 error }
cul.0 2018-02-25 23:26:36.222 error return prop;
cul.0 2018-02-25 23:26:36.222 error if (this[prop] === value)
cul.0 2018-02-25 23:26:36.222 error if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:36.222 error for (var prop in this) {
cul.0 2018-02-25 23:26:36.222 error Cannot open port: Port is not selected getKeyByValue=function (value) {
cul.0 2018-02-25 23:26:36.208 info }
cul.0 2018-02-25 23:26:36.208 info }
cul.0 2018-02-25 23:26:36.208 info }
cul.0 2018-02-25 23:26:36.208 info return prop;
cul.0 2018-02-25 23:26:36.208 info if (this[prop] === value)
cul.0 2018-02-25 23:26:36.208 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:36.208 info for (var prop in this) {
cul.0 2018-02-25 23:26:36.208 info starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.cul, node: v6.12.3 getKeyByValue=function (value) {
cul.0 2018-02-25 23:26:36.129 info }
cul.0 2018-02-25 23:26:36.129 info }
cul.0 2018-02-25 23:26:36.129 info }
cul.0 2018-02-25 23:26:36.129 info return prop;
cul.0 2018-02-25 23:26:36.129 info if (this[prop] === value)
cul.0 2018-02-25 23:26:36.129 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:26:36.129 info for (var prop in this) {
cul.0 2018-02-25 23:26:36.129 info States connected to redis: 127.0.0.1:6379 getKeyByValue=function (value) {
iobroker 2018-02-25 23:26:34.332 info exit 0
iobroker 2018-02-25 23:26:34.308 info host.ioBroker-Pi object system.adapter.cul.0 created
host.ioBroker-Pi 2018-02-25 23:26:34.299 info instance system.adapter.cul.0 started with pid 15861
host.ioBroker-Pi 2018-02-25 23:26:34.270 info object change system.adapter.cul.0
iobroker 2018-02-25 23:26:34.233 info host.ioBroker-Pi object system.adapter.cul.0.alive created
iobroker 2018-02-25 23:26:34.198 info host.ioBroker-Pi object system.adapter.cul.0.connected created
iobroker 2018-02-25 23:26:34.162 info host.ioBroker-Pi object system.adapter.cul.0.memHeapUsed created
iobroker 2018-02-25 23:26:34.124 info host.ioBroker-Pi object system.adapter.cul.0.memHeapTotal created
iobroker 2018-02-25 23:26:34.088 info host.ioBroker-Pi object system.adapter.cul.0.memRss created
iobroker 2018-02-25 23:26:34.053 info host.ioBroker-Pi object system.adapter.cul.0.uptime created
iobroker 2018-02-25 23:26:34.017 info host.ioBroker-Pi object system.adapter.cul.0.inputCount created
iobroker 2018-02-25 23:26:33.982 info host.ioBroker-Pi object system.adapter.cul.0.outputCount created
iobroker 2018-02-25 23:26:33.947 info host.ioBroker-Pi object cul.0.info created
iobroker 2018-02-25 23:26:33.913 info host.ioBroker-Pi object cul.0.info.connection created
iobroker 2018-02-25 23:26:33.878 info host.ioBroker-Pi object cul.0.info.rawData created
iobroker 2018-02-25 23:26:33.863 info host.ioBroker-Pi create instance cul
iobroker 2018-02-25 23:26:33.829 info host.ioBroker-Pi object _design/cul created
iobroker 2018-02-25 23:26:33.812 info host.ioBroker-Pi object cul.meta.roles created
iobroker 2018-02-25 23:26:33.790 info host.ioBroker-Pi object system.adapter.cul created
iobroker 2018-02-25 23:26:33.629 info upload [0] cul.admin /opt/iobroker/node_modules/iobroker.cul/admin/busware.jpg busware.jpg image/jpeg
iobroker 2018-02-25 23:26:33.512 info upload [1] cul.admin /opt/iobroker/node_modules/iobroker.cul/admin/index.html index.html text/html
iobroker 2018-02-25 23:26:33.484 info got /opt/iobroker/node_modules/iobroker.cul/admin
iobroker 2018-02-25 23:26:33.458 info host.ioBroker-Pi install adapter cul
iobroker 2018-02-25 23:26:31.548 info add cul
host.ioBroker-Pi 2018-02-25 23:23:34.294 info Update repository "default" under "http://download.iobroker.net/sources-dist.json"
iobroker 2018-02-25 23:23:33.880 info exit 0
iobroker 2018-02-25 23:23:00.078 info WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.cul/node_modules/serialport/.node-gyp"
iobroker 2018-02-25 23:23:00.076 info gyp
iobroker 2018-02-25 23:23:00.073 info EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/6.12.3"
iobroker 2018-02-25 23:23:00.071 info WARN
iobroker 2018-02-25 23:23:00.069 info
iobroker 2018-02-25 23:23:00.065 info gyp
iobroker 2018-02-25 23:22:58.173 info install EACCES: permission denied, access '/root/.npm'
iobroker 2018-02-25 23:22:58.171 info WARN
iobroker 2018-02-25 23:22:58.169 info prebuild-install
iobroker 2018-02-25 23:22:58.157 info looking for local prebuild @ prebuilds/serialport-v6.0.5-node-v48-linux-arm.tar.gz
iobroker 2018-02-25 23:22:58.155 info info
iobroker 2018-02-25 23:22:58.153 info prebuild-install
iobroker 2018-02-25 23:22:58.137 info begin Prebuild-install version 2.5.1
iobroker 2018-02-25 23:22:58.135 info info
iobroker 2018-02-25 23:22:58.133 info
iobroker 2018-02-25 23:22:58.127 info prebuild-install
iobroker 2018-02-25 23:22:09.976 info npm install https://github.com/ioBroker/ioBroker.cul/tarball/master –production --prefix "/opt/iobroker" (System call)
iobroker 2018-02-25 23:22:09.417 info install https://github.com/ioBroker/ioBroker.cul/tarball/master
iobroker 2018-02-25 23:22:08.115 info url "https://github.com/ioBroker/ioBroker.cul"
host.ioBroker-Pi 2018-02-25 23:21:56.390 error Cannot write files: /opt/iobroker/node_modules/iobroker.js-controller/lib/objects/../../../../iobroker-data/files/cul.admin/_data.json: ENOENT: no such file or directory, open '/opt/iobroker/node_mod
iobroker 2018-02-25 23:21:55.707 info exit 0
host.ioBroker-Pi 2018-02-25 23:21:55.670 info Do not restart adapter system.adapter.cul.0 because disabled or deleted
host.ioBroker-Pi 2018-02-25 23:21:55.669 error instance system.adapter.cul.0 terminated with code 0 (OK)
cul.0 2018-02-25 23:21:55.641 info }
cul.0 2018-02-25 23:21:55.641 info }
cul.0 2018-02-25 23:21:55.641 info }
cul.0 2018-02-25 23:21:55.641 info return prop;
cul.0 2018-02-25 23:21:55.641 info if (this[prop] === value)
cul.0 2018-02-25 23:21:55.641 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:21:55.641 info for (var prop in this) {
cul.0 2018-02-25 23:21:55.641 info terminating getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:21:55.628 info stopInstance system.adapter.cul.0 killing pid 15096
host.ioBroker-Pi 2018-02-25 23:21:55.628 info stopInstance system.adapter.cul.0
host.ioBroker-Pi 2018-02-25 23:21:55.624 info object deleted system.adapter.cul.0
host.ioBroker-Pi 2018-02-25 23:21:55.623 info object change system.adapter.cul.0
iobroker 2018-02-25 23:21:55.607 error Not exists
iobroker 2018-02-25 23:21:55.469 info host.ioBroker-Pi Deleting 15 object(s).
iobroker 2018-02-25 23:21:55.462 info host.ioBroker-Pi Counted 11 states of cul
iobroker 2018-02-25 23:21:55.438 info host.ioBroker-Pi Counted 1 channels of cul
iobroker 2018-02-25 23:21:55.436 info host.ioBroker-Pi Counted 1 adapters for cul
iobroker 2018-02-25 23:21:55.392 info host.ioBroker-Pi Counted 1 meta of cul
iobroker 2018-02-25 23:21:55.314 info host.ioBroker-Pi Counted 1 instances of cul
iobroker 2018-02-25 23:21:55.257 info host.ioBroker-Pi Counted 9 states (system.adapter.cul.*) from states
iobroker 2018-02-25 23:21:55.252 info host.ioBroker-Pi Counted 1 states (cul.*) from states
iobroker 2018-02-25 23:21:55.202 info host.ioBroker-Pi delete /opt/iobroker/node_modules/iobroker.cul
iobroker 2018-02-25 23:21:53.266 info del cul
cul.0 2018-02-25 23:15:44.700 info }
cul.0 2018-02-25 23:15:44.700 info }
cul.0 2018-02-25 23:15:44.700 info }
cul.0 2018-02-25 23:15:44.700 info return prop;
cul.0 2018-02-25 23:15:44.700 info if (this[prop] === value)
cul.0 2018-02-25 23:15:44.700 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:44.700 info for (var prop in this) {
cul.0 2018-02-25 23:15:44.700 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.688 info }
cul.0 2018-02-25 23:15:43.688 info }
cul.0 2018-02-25 23:15:43.688 info }
cul.0 2018-02-25 23:15:43.688 info return prop;
cul.0 2018-02-25 23:15:43.688 info if (this[prop] === value)
cul.0 2018-02-25 23:15:43.688 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.688 info for (var prop in this) {
cul.0 2018-02-25 23:15:43.688 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.590 info }
cul.0 2018-02-25 23:15:43.590 info }
cul.0 2018-02-25 23:15:43.590 info }
cul.0 2018-02-25 23:15:43.590 info return prop;
cul.0 2018-02-25 23:15:43.590 info if (this[prop] === value)
cul.0 2018-02-25 23:15:43.590 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.590 info for (var prop in this) {
cul.0 2018-02-25 23:15:43.590 info starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.cul, node: v6.12.3 getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.524 info }
cul.0 2018-02-25 23:15:43.524 info }
cul.0 2018-02-25 23:15:43.524 info }
cul.0 2018-02-25 23:15:43.524 info return prop;
cul.0 2018-02-25 23:15:43.524 info if (this[prop] === value)
cul.0 2018-02-25 23:15:43.524 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.524 info for (var prop in this) {
cul.0 2018-02-25 23:15:43.524 info States connected to redis: 127.0.0.1:6379 getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.511 debug }
cul.0 2018-02-25 23:15:43.511 debug }
cul.0 2018-02-25 23:15:43.511 debug }
cul.0 2018-02-25 23:15:43.511 debug return prop;
cul.0 2018-02-25 23:15:43.511 debug if (this[prop] === value)
cul.0 2018-02-25 23:15:43.511 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.511 debug for (var prop in this) {
cul.0 2018-02-25 23:15:43.511 debug statesDB connected getKeyByValue=function (value) {
cul.0 2018-02-25 23:15:43.453 debug }
cul.0 2018-02-25 23:15:43.453 debug }
cul.0 2018-02-25 23:15:43.453 debug }
cul.0 2018-02-25 23:15:43.453 debug return prop;
cul.0 2018-02-25 23:15:43.453 debug if (this[prop] === value)
cul.0 2018-02-25 23:15:43.453 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:43.453 debug for (var prop in this) {
cul.0 2018-02-25 23:15:43.453 debug objectDB connected getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:15:41.729 info instance system.adapter.cul.0 started with pid 15096
host.ioBroker-Pi 2018-02-25 23:15:39.221 info instance system.adapter.cul.0 terminated with code 0 (OK)
host.ioBroker-Pi 2018-02-25 23:15:39.157 info stopInstance system.adapter.cul.0 killing pid 11608
host.ioBroker-Pi 2018-02-25 23:15:39.155 info stopInstance system.adapter.cul.0
cul.0 2018-02-25 23:15:39.173 info }
cul.0 2018-02-25 23:15:39.173 info }
cul.0 2018-02-25 23:15:39.173 info }
cul.0 2018-02-25 23:15:39.173 info return prop;
cul.0 2018-02-25 23:15:39.173 info if (this[prop] === value)
cul.0 2018-02-25 23:15:39.173 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:15:39.173 info for (var prop in this) {
cul.0 2018-02-25 23:15:39.173 info terminating getKeyByValue=function (value) {
-
Sorry, da fehlten die debug infos.
Mein Terminal sagt was du sendest:
V
X21
T01
das abgehängte Bild zeigt was der nanoCUL versteht.
das zeigt mir, das nach dem öffnen der Schittstelle eine Zeit vergehen muss bevor du sendest.
hier der log
cul.0 2018-02-25 23:43:57.327 debug }
cul.0 2018-02-25 23:43:57.327 debug }
cul.0 2018-02-25 23:43:57.327 debug }
cul.0 2018-02-25 23:43:57.327 debug return prop;
cul.0 2018-02-25 23:43:57.327 debug if (this[prop] === value)
cul.0 2018-02-25 23:43:57.327 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:57.327 debug for (var prop in this) {
cul.0 2018-02-25 23:43:57.327 debug , {"rssi":null} getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:57.327 debug RAW: 1234
cul.0 2018-02-25 23:43:57.313 info }
cul.0 2018-02-25 23:43:57.313 info }
cul.0 2018-02-25 23:43:57.313 info }
cul.0 2018-02-25 23:43:57.313 info return prop;
cul.0 2018-02-25 23:43:57.313 info if (this[prop] === value)
cul.0 2018-02-25 23:43:57.313 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:57.313 info for (var prop in this) {
cul.0 2018-02-25 23:43:57.313 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:57.309 info }
cul.0 2018-02-25 23:43:57.309 info }
cul.0 2018-02-25 23:43:57.309 info }
cul.0 2018-02-25 23:43:57.309 info return prop;
cul.0 2018-02-25 23:43:57.309 info if (this[prop] === value)
cul.0 2018-02-25 23:43:57.309 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:57.309 info for (var prop in this) {
cul.0 2018-02-25 23:43:57.309 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:56.298 info }
cul.0 2018-02-25 23:43:56.298 info }
cul.0 2018-02-25 23:43:56.298 info }
cul.0 2018-02-25 23:43:56.298 info return prop;
cul.0 2018-02-25 23:43:56.298 info if (this[prop] === value)
cul.0 2018-02-25 23:43:56.298 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:56.298 info for (var prop in this) {
cul.0 2018-02-25 23:43:56.298 info -> getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:56.197 info }
cul.0 2018-02-25 23:43:56.197 info }
cul.0 2018-02-25 23:43:56.197 info }
cul.0 2018-02-25 23:43:56.197 info return prop;
cul.0 2018-02-25 23:43:56.197 info if (this[prop] === value)
cul.0 2018-02-25 23:43:56.197 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:56.197 info for (var prop in this) {
cul.0 2018-02-25 23:43:56.197 info starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.cul, node: v6.12.3 getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:56.136 info }
cul.0 2018-02-25 23:43:56.136 info }
cul.0 2018-02-25 23:43:56.136 info }
cul.0 2018-02-25 23:43:56.136 info return prop;
cul.0 2018-02-25 23:43:56.136 info if (this[prop] === value)
cul.0 2018-02-25 23:43:56.136 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:56.136 info for (var prop in this) {
cul.0 2018-02-25 23:43:56.136 info States connected to redis: 127.0.0.1:6379 getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:56.123 debug }
cul.0 2018-02-25 23:43:56.123 debug }
cul.0 2018-02-25 23:43:56.123 debug }
cul.0 2018-02-25 23:43:56.123 debug return prop;
cul.0 2018-02-25 23:43:56.123 debug if (this[prop] === value)
cul.0 2018-02-25 23:43:56.123 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:56.123 debug for (var prop in this) {
cul.0 2018-02-25 23:43:56.123 debug statesDB connected getKeyByValue=function (value) {
cul.0 2018-02-25 23:43:56.065 debug }
cul.0 2018-02-25 23:43:56.065 debug }
cul.0 2018-02-25 23:43:56.065 debug }
cul.0 2018-02-25 23:43:56.065 debug return prop;
cul.0 2018-02-25 23:43:56.065 debug if (this[prop] === value)
cul.0 2018-02-25 23:43:56.065 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:56.065 debug for (var prop in this) {
cul.0 2018-02-25 23:43:56.065 debug objectDB connected getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:43:54.336 info instance system.adapter.cul.0 started with pid 16873
host.ioBroker-Pi 2018-02-25 23:43:51.870 info instance system.adapter.cul.0 terminated with code 0 (OK)
cul.0 2018-02-25 23:43:51.842 info }
cul.0 2018-02-25 23:43:51.842 info }
cul.0 2018-02-25 23:43:51.842 info }
cul.0 2018-02-25 23:43:51.842 info return prop;
cul.0 2018-02-25 23:43:51.842 info if (this[prop] === value)
cul.0 2018-02-25 23:43:51.842 info if (this.hasOwnProperty(prop)) {
cul.0 2018-02-25 23:43:51.842 info for (var prop in this) {
cul.0 2018-02-25 23:43:51.842 info terminating getKeyByValue=function (value) {
host.ioBroker-Pi 2018-02-25 23:43:51.813 info stopInstance system.adapter.cul.0 killing pid 16817
host.ioBroker-Pi 2018-02-25 23:43:51.812 info stopInstance system.adapter.cul.0
Gruß Mickbaäer
5817_1.png -
Dein Debug log kapiere ich nicht, da sollte kein Quellcode drin sein. Da ist irgendwas komisch.
Dein Bild weißt für mich eher darauf hin das die baudrate nicht stimmt. Ist die wirklich korrekt eingetragen in der Adapter konfig? Bitte mal unter Objekte —> system.adapter.cul.0 auf den Stift gehen und dort unter „raw Experts only“ Posten was da steht. Danke.
Bei Maxcul Adapter beispielsweise ist ein V ausreichend …
-
Hallo, ich habe mich nun nocheinmal dran gemacht zu verstehen was Du da machst.
und bin auf folgendes gestossen:
in der datei: /opt/iobroker/node_modules/iobroker.cul/node_modules/cul/ cul.js
zeile 123:
–---------------
serialPort.on('open', () => {
if (options.init) {
that.write('V', err => {
if (err) {
throw err;
}
});
–---------------
da fehlt hinter den V, das \r\n
darum versteht der nanoCUL den Befehl nicht.
Also bitte aus 'V' 'V\r\n' machen.
Das ist das eine.
Ich hatte erklärt das der nanoCul auf das \r\n wartet sonst versteht er den Befehl nicht,
steht auch so in der CulFW doku so drin.(alle Befehle sind mit <cr>& <lf>abzuschliessen)
Das errnnert mich stark an die diskussion beim MAXCUL, da hat der Kollege das CR & LF auch bemängelt....
und dann bitte warten (nichts senden bevor nicht min 750ms vergangen sind!!!
du ballerst gleich weiter auf die Schnittstelle.
mit dem Init command.
das sieht man an der antwort,
wenn Du V\r\n sendest braucht der cul das erste mal seine 750ms um zu antworten,
da kommt was mit 'nanoCul 1.63' zurück. erst wenn das da ist kann es weiter gehen.
von dem was du da sendest,
V\r\n
X21
T01
versteht der cul nur
T01
und antwortet mit 1234 das ist für T01 richtig.
da du aber nach V\r\n gleich weiter machst, kommt er durcheinander und vergisst das was wir wollen, das X21.
Im übrigen warten heist nicht die timeout zu erhöhen
serialPort.on('open', () => {
if (options.init) {
that.write('V\r\n', err => {
if (err) {
throw err;
}
});
HIer soll gewartet werden min 750ms
und dann noch mal
that.write('V\r\n', err => {
if (err) {
throw err;
}
});
serialPort.drain(() => {
setTimeout(() => { // give CUL enough time to wakeup
ich meine das ist unnötig, die time out von 10secunden die du bei open serial gesetzt hat sollte reichen
that.write(options.initCmd, err => {
if (err) {
throw err;
}
});
serialPort.drain(() => {
if (modeCmd) {
–-----------------------
Bitte mal so umbauen dann kann ich das weiter testen.
Ich weiss ja jetzt in welcher datei ich suchen muss.
Gruß Mickbaer</lf></cr>
-
Der Stift zeigt das was im log steht,
cul.0 2018-02-26 01:03:02.264 debug }
cul.0 2018-02-26 01:03:02.264 debug }
cul.0 2018-02-26 01:03:02.264 debug }
cul.0 2018-02-26 01:03:02.264 debug return prop;
cul.0 2018-02-26 01:03:02.264 debug if (this[prop] === value)
cul.0 2018-02-26 01:03:02.264 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-26 01:03:02.264 debug for (var prop in this) {
cul.0 2018-02-26 01:03:02.264 debug , {"rssi":null} getKeyByValue=function (value) {
cul.0 2018-02-26 01:03:02.264 debug RAW: 1234
Ich habe das V mit \r\n ersetzt, dann sind die hyroglüfen weg und im log steht das 1234, das ergebniss von T01
das zeigt es fehlt die delay von 750ms. aus meinem letzten post.
zusammengefasst,
Öffnen der schnitt stelle ok
Baudrate ok, sonst käme kein RAW 1234 zustande.
Senden von V geht auch
aber durch sofortiges senden von weiteren befehlen kommt der cul durcheinander.
erst das T01 bekommt er wieder mit und quittiert es durch 1234.
Eigentlich sollte jetzt die Aufgabe klar sein.
V\r\n senden
delay(750ms) einbauen
V\r\n senden
X21 senden
hier könnten mann aufhören,
aber da der X21 keinen Quittung zurück gibt,
noch ein T01 zur Kontrolle hinterher.
darum ist dann die antwort 1234 vom cul unsere quittung.
Bitte entsprechen umbauen, ich teste es dann.
Gruß Mickbaer
-
Aaaaaaaaalso.
1.) "that.write" als Funktion hängt selbst das "/r/n" dran. Siehe: https://github.com/Apollon77/cul/blob/m … ul.js#L166
Also ist das kein Issue.
2.) Irgendwie hab ich das Gefühl das bei dir diese cul.js nicht aktualisiert wurde. Also bitte mal vergleichen ob der Teil ab https://github.com/Apollon77/cul/blob/m ... ul.js#L124 so ist die dort auf Github. Ist das identisch? Es sollten auch alle send-Kommandos mit "-> ..." geloggt werden.
Ich habe jetzt noch eine Wartezeit nach öffnen der Verbindung und dem "V" Kommando eingebaut von 2s und habe den zweiten Delay auch erhöht. Damit ist es jetzt noch mehr "in sync" mit dem maxcul Adapter. ALso vitte vorher nochmal vom Github updaten bevor Du vergleichst!
Wenn ja dann macht er folgendes:
-> Warten 2000ms
-> V/r/n senden
-> Warten das gesendet wurde
-> Warten 2000ms
-> X21/r/n senden
-> Warten das gesendet wurde
-> T01/r/n senden
-> Warten das gesendet wurde
-> er jetzt geht Adapter-Anpel auf Grün und er empfängt. Alles vorher wird auch nicht geloggt.
Und das ist EXAKT das was Du geschrieben hast was sein soll.
Ansonsten ist das Debug Log immer noch komisch. Quellcode sollte da nicht stehen.
Unter dem Objekt "system.adapter.cul.0" sollte etwas stehen wie (Beispiel bei mir von daikin.0):
{ "_id": "system.adapter.daikin.0", "type": "instance", "common": { "name": "daikin", "version": "0.2.3", "news": { "0.1.0": { "en": "Initial public test version", "de": "Initiale öffentliche Testversion", "ru": "Initial public test version" }, "0.1.12": { "en": "Initial public test version", "de": "Initiale öffentliche Testversion", "ru": "Initial public test version" }, "0.2.3": { "en": "Add control.lastResult to see if a change was successfull", "de": "control.lastResult hinzugefügt um zu sehen ob die letzte Änderung erfolgreich war", "ru": "Add control.lastResult to see if a change was successfull" }, "0.2.2": { "en": "Removed debug messages", "de": "Debug-Ausgaben entfernt", "ru": "Removed debug messages" } }, "title": "Daikin Adapter", "desc": "Control Daikin Air Conditioner devices", "platform": "Javascript/Node.js", "mode": "daemon", "messagebox": true, "subscribe": "messagebox", "stopBeforeUpdate": true, "icon": "daikin.jpg", "extIcon": "https://raw.githubusercontent.com/Apollon77/ioBroker.daikin/master/admin/daikin.jpg", "readme": "https://github.com/Apollon77/ioBroker.daikin", "license": "MIT", "npmLibs": [], "type": "hardware", "keywords": [ "iobroker", "daikin", "climate control" ], "loglevel": "info", "enabled": true, "restartAdapters": [ "daikin" ], "installedVersion": "0.2.3", "host": "nuc2" }, "native": { "daikinIp": "192.168.178.26", "pollingInterval": "60" }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "ts": 1519075415654 }
Wichtig ist der Teil bei "native" weil hier die Adapter-Einstellungen stehen.
Also bitte nochmal testen.
-
Hallo,
ich habe jetzt die Version von Heute morgen installiert und getestet.
Es funktioniert jetzt.
Ich habe noch die zeiten angepasst :
–-------------
serialPort.on('open', () => {
if (options.init) {
setTimeout(() => { // give CUL enough time to wakeup
that.write('V', err => {
if (err) {
throw err;
}
});
serialPort.drain(() => {
setTimeout(() => { // give CUL enough time to wakeup
that.write(options.initCmd, err => {
if (err) {
throw err;
}
});
serialPort.drain(() => {
if (modeCmd) {
that.write(modeCmd, err => {
if (err) {
throw err;
}
});
serialPort.drain(err => {
if (err) {
throw err;
}
ready();
});
} else {
ready();
}
});
}, 20);
});
}, 1500);
} else {
ready();
}
–-------------
Damit geht es gut und auch immer wiederkehrend ohne Fehler.
Danke für deine Mühe,
damit ist der CUL-Adapter jetzt auch für den nanoCul verwendbar.
Das wird bestimmt viele User freuen...
Gruß Mickbaer aus Berlin
-
Da jetzt der CUL-Adapter mit dem nanoCUL funktioniert,
kommt jetzt die nächste Frage.
kannst Du bitte das ESA wieder einbauen,
const protocol = { em: require('./lib/em.js'), fs20: require('./lib/fs20.js'), hms: require('./lib/hms.js'), moritz: require('./lib/moritz.js'), uniroll: require('./lib/uniroll.js'), ws: require('./lib/ws.js'), fht: require('./lib/fht.js') ==>> das war in der Version 0.2.0 hier drin esa: require('./lib/esa.js') <<== }; // http://culfw.de/commandref.html const commands = { F: 'FS20', T: 'FHT', E: 'EM', W: 'WS', H: 'HMS', => S: 'ESA', <= R: 'Hoermann',
das file esa.js gibt es ja unter dem Lib verzeichnis schon.
In den RAW daten sehe ich auch schon die von meinem Energiezähler gesendeten Nachrichten:
S263CF9011E0006C73B0004000000014B40
aber sie tauchen hier nicht auf.
esa.js
'use strict';
module.exports.parse = function (raw) {
const message = {
protocol: 'ESA',
raw
};
return message;
};
das wird irgend wo verhindert.(Ich konnte nicht finden wo das verhindert wird.)
Könntest Du das so einstellen das in dem Modul die RAW Daten ankommen.
Ich würde dann mal versuchen das zu parsen, so wie es auch bei FHEM geparst wird.
Wenn das gelingt, dann könnten auch die Energiezähler benutzt werden.
Danke für deine Hilfe
Gruß Mickbaer