NEWS
[gelöst] SerialPort-Adapter
-
Wie nutze ich die USB-Schnittstelle denn ? Wäre auch eine Alternative. `
Die Frage hätte ich jetzt, zumindest von Dir, so nicht erwartet. Aber vielleicht "reden wir aneinander vorbei".Du hast doch geschrieben, dass es mit dem Windowsrechner funktioniert. Da hast Du doch sicher einen USB/Seriell-Adapter angeschlossen?
Und genauso funktionert dies beim Raspi. Mit meinem Feinstaubsensor mache ich es genauso, USB/Serielladapter angeschlossen, das fertige Node SDS011 ausgewählt und als Port /dev/ttyUSB0 eingetragen, und fertig.
Hier die installierte Hardeware: https://www.ebay.de/itm/Nova-Fitness-Fe … Sww1hax9pB
! ` > Eigenschaften von Feinstaub Sensor SDS011
Accurate and Reliable: laser detection, stable, good consistency;
Quick response: response time is less than 10 seconds when the scene changes;
Easy integration: UART output (or IO output can be customized), fan built-in;
High resolution: resolution of 0.3µg/m3;
Products have passed CE/FCC/RoHS cetification.
Eigenschaften von USB Adapter Module
Designed for Nova Fitness Laser Dust Sensor
CH340G UART to TTL
3.3v or 5V power supply
Power supply LED, TXD and RXT LED
Win7/win8/Win10
max. 250mA output
USB Typ A to Female 5 Pin pitch 2,0mm `
WIe Du den techn. Daten entnehmen kannst kommuniziert der Feinstaubsensor über eine serielle Schnittstelle. Genauso sollte es auch mit dem seriellen Node und deiner Alarmanlage funktionieren.Und das dritte was mir aufgefallen ist, das der WLAN vom Raspi regelmäßig zusammenbricht und ich hatte keine Verbindung mehr. `
Dann würde ich das WLAN abschalten und nur mit dem Ethernetanschluß weiter machen. Kann es sein, dass Du einen Raspi 3B+ gekauft hast?Wie kann ich den empfangenen String in Variablen abspeichern damit ich es im ioBroker verwenden kann ? Ich hab versucht im ioBroker manuel neue Objekte einzufügen, doch das steht in den Node-Red gar nicht zur Auswahl an. ` Das sollte kein großes Problem sein. Wenn es sein muss kann man den String Zeichen für Zeichen auseinander nehmen und an ioBroker übergeben. Dafür gibt es zwei fertige Nodes. Allerdings nur im Node-Red Adapter vom ioBroker!
Aber ich sehe schon, der erste Frust ist nun weg und der Ehrgeiz überwiegt nun. Dass wird schon, Stück für Stück, da bin ich mir absolut sicher.
-
Die Frage hätte ich jetzt, zumindest von Dir, so nicht erwartet. Aber vielleicht "reden wir aneinander vorbei".
Du hast doch geschrieben, dass es mit dem Windowsrechner funktioniert. Da hast Du doch sicher einen USB/Seriell-Adapter angeschlossen?
Und genauso funktionert dies beim Raspi. Mit meinem Feinstaubsensor mache ich es genauso, USB/Serielladapter angeschlossen, das fertige Node SDS011 ausgewählt und als Port /dev/ttyUSB0 eingetragen, und fertig. `
Ja richtig, so ist das auch, wir verstehen uns schon richtig. Ich stecke den Konverter mal von PC auf den Rapsi und versuche mal den ttyUSB0, nur zum testen. Aber ich denke aber die UART-Schnittstelle ist schon das richtig. Damit schenke ich mir auf meiner Platine den kompletten UART-USB-Konverter.Dann würde ich das WLAN abschalten und nur mit dem Ethernetanschluß weiter machen. Kann es sein, dass Du einen Raspi 3B+ gekauft hast? `
Kann sein, dass es der + war. Gibt es da bekannte Probleme mit den WLAN ?Das sollte kein großes Problem sein. Wenn es sein muss kann man den String Zeichen für Zeichen auseinander nehmen und an ioBroker übergeben. Dafür gibt es zwei fertige Nodes. Allerdings nur im Node-Red Adapter vom ioBroker! `
Den Note hab ich schon gefunden, ist nur die Frage wie ich eine Instanz im ioBroker manuell anlege, damit ich es im Node auswählen kann.Aber ich sehe schon, der erste Frust ist nun weg und der Ehrgeiz überwiegt nun. Dass wird schon, Stück für Stück, da bin ich mir absolut sicher. `
Abwarten
.
Ich hab geschrieben, dass ich mich im Internet über ioBroker erkundigt habe. Dort wurde mehrfach geschrieben, dass es sehr gut dokumentiert sei. Bis jetzt kann ich das leider nicht bestätigen oder ich kann den Ganzen noch nicht so richtig folgen. Ich weiß nicht genau ob meine Anforderungen über den Standard hinaus gehen, jedoch hab ich Schwierigkeiten Infos zu bekommen um mein Projekt voran zu treiben. Ich scheue mich nicht davor Javascripte selber zu schreiben, da ich ja schon ein paar private Projekte in C, HTML, und PHP realisiert habe. Auf der Homepage vom ioBroker gibt es eine kleine Einführung in der Javascript-Erstellung, nur gerade das hat mir kein Stück weitergeholfen. In finde es sollte an der Stelle einfach mehr Beispiele geben. Gerade wenn Scripte vorgestellt werden, geht man doch davon aus, dass nicht nur Laien die Plattform nutzen, sondern sich darunter viele Nerds (keine Abwertung) tummeln. Dann hätte ich jetzt erwartet, wie man auch andere Dinge ausser eine Zeitsteuerung realisieren kann. Wenn ich solche Startschwierigkeiten mit einer "simplen" Schnittstelle hatte, frag ich mich wie es sich dann mit der Visualisierung verhält. Ich denke aber die Probleme mit der UART-Schnittstelle ist den Rapsi und nicht ioBroker geschuldet. Ich mache erstmal Schritt für Schritt weiter, auch wenn es manchmal 3 Schritte nach vorne und wieder 2 zurück bedeuet und werde dann sehen wie es sich entwickelt.
Kannst Du mir zeigen, wie ich den String in den Node-Red aufsplitten und in eine Variable schreiben kann ?
-
Abwarten
. ` Nö, da bin ich mir jetzt schon zu 100% sicher. Du bringst alles an Grundkentnnissen mit was benötigt wird um nachher locker dein(e) Projekt(e) umzusetzen.
@pfuhsy:Kann sein, dass es der + war. Gibt es da bekannte Probleme mit den WLAN ? ` Ich meine zumindest so etwas gelesen zu haben. Erst habe ich mich geärgert zwei Raspi 3 gekauft zu haben. Jetzt bin ich ganz froh, denn die laufen ohne Probleme.
@pfuhsy:Ich stecke den Konverter mal von PC auf den Rapsi und versuche mal den ttyUSB0, nur zum testen. Aber ich denke aber die UART-Schnittstelle ist schon das richtig. Damit schenke ich mir auf meiner Platine den kompletten UART-USB-Konverter. ` Ist schon O.K., da es bei mir auf Anhieb über den USB Port so problemlos funktioniert hat, dachte ich nur ein Versuch wäre es Wert. Man kann nur nach dem Ausschlußverfahren vorgehen, um zum Ziel zu kommen. Leider braucht dies immer alles viel Zeit. :oops:
@pfuhsy:Den Note hab ich schon gefunden, ist nur die Frage wie ich eine Instanz im ioBroker manuell anlege, damit ich es im Node auswählen kann. ` Da bin ich auch leider etwas überfragt, aber da werden wir hier sicher jemand finden, der es dir/uns erklärt. In dem von mir benutzten M-Busadapter sind die Instanzen alle schon vorhanden.
@pfuhsy:Ich hab geschrieben, dass ich mich im Internet über ioBroker erkundigt habe. Dort wurde mehrfach geschrieben, dass es sehr gut dokumentiert sei. Bis jetzt kann ich das leider nicht bestätigen oder ich kann den Ganzen noch nicht so richtig folgen. `
Jetzt muss man aufpassen, dass man nicht unfair wird. Wir können soweit alles kostenlos nutzen und viele von den Programmieren hier opfern ihre Freizeit, um weitere Adapter/Dokumentationen und dergleichen zu erstellen. Und dies alles damit wir es kostenlos nutzen können. Klar kommt dann gerne die ausführlich und für den Laien verständliche Dokumentation etwas zu kurz.Auch Blockly ist schon ein echt geiles Instrument für jemanden der sich mit Programmiersprachen nicht auseinander setzen will. Ja, es ist nicht alles perfekt, aber es sind hier absolut geile Sachen zu finden. Und bitte vergiss dabei nicht, Du selber hast dir die viele neue Baustellen aufgemacht. Linux, Raspi, Node-Red, Javascript, Visualisierung usw.
Gib dir die Zeit und gehe die Dinge in Ruhe an, Stück für Stück. Am Ende wird es dir so gehen wie mir, Du bekommst immer neue Ideen und die Umsetzung wird dir immer leichter fallen. Und aus dem Fragesteller wird ein Supporter. :mrgreen:
@pfuhsy:Auf der Homepage vom ioBroker gibt es eine kleine Einführung in der Javascript-Erstellung, nur gerade das hat mir kein Stück weitergeholfen. ` :lol: Die habe ich überhaupt nicht gefunden. Ich habe einfach losgelegt und auf das vor 40 Jahren erworbenen Programmierwissen in Basic gesetzt. Im Internet gibt es heute so geile Onlineschulungen, dass ist eine wahre Freude. Auch auf Youtube findest Du ausreichend Kurse hierzu. Was meinst Du wie ich nach Informationen in Bezug auf Node Red gesucht habe. Nirgendwo ein Forum wo man Fragen stellen kann, fast keine deutsche Dokumentation. Aber ich habe einfach nicht aufgegeben und lerne täglich weiter dazu. In unregelmäßigen Abständen schaue ich mir immer die neuesten Videos zu Node Red auf Youtube an.
@pfuhsy:Wenn ich solche Startschwierigkeiten mit einer "simplen" Schnittstelle hatte, frag ich mich wie es sich dann mit der Visualisierung verhält. ` In Node Red, je nach Anspruch, ist die Visualisierung eine Kleinigkeit und wirklich schnell umgesetzt. Und selbst mit dem Smart-TV aufruf- und bedienbar.
@pfuhsy:Kannst Du mir zeigen, wie ich den String in den Node-Red aufsplitten und in eine Variable schreiben kann ? ` Sollte kein Problem sein, dann würdest Du aber nun wirklich in das Thema Node Red einsteigen. Je nach Anforderung kann man fertige Nodes verwenden, oder man schreibt sich selber ein Javascript im Funktion Node.
Wie sieht denn der Inhalt von so einem String aus? Und welche Informationen willst Du dem String entnehmen?
Hier einige Beispiele womit man einen String mit Javascript auseinander nehmen kann. https://www.w3schools.com/js/js_string_methods.asp
-
Wie sieht denn der Inhalt von so einem String aus? Und welche Informationen willst Du dem String entnehmen? `
Zum Beispiel: "00112233445566". Das sind 7x Hexzahlenpaare anandergereiht. In der PHP hatte ich diese wieder decodiert.
00 = Binär 0000 0000, 11 = Binär 0001 0001, 22 = Binär 0010 0010 usw. Jedes Hexzahlenpaar steht für verschiedene Statuswerte aus der Alarmanlage. Das dritte Paar steht z.B. für den Zustand der Reedkontakte. 0000 0001 bedeutet dann der erste Kontakt ist geöffnet, 0000 0011 die ersten beiden sind geöffnet usw.
Also den 14stellenigen String in zweier Pakete auftrennen. Dann die zweier Pakete maskieren und das Ergebniss in eine Variable schreiben. Diese repräsentieren dann ein true oder false die ich dann mit einer if-Abfrage nutzen kann. So die Idee. Ich denke wenn ich einmal kapiert habe wie ich den Kram zwischenspeichern kann, kommt der Rest fast von alleine.
-
Ist im Prinzip nicht schwer. Für diese Aufgabe wird es wohl kein fertiges Node geben. Aber Du wolltest ja auch ein wenig mit Javascript programmieren. Zuerst sollten wir uns so etwas einmal real ansehen, sprich im Debug-Node. Der über die sereielle Schnittstelle gesendete String müsste in der Variablen msg.payload stehen. Bitte mache ein Screenshot davon.
Als nächstes brauchst Du dann das Function Node, in dem Du dein Javascript schreibst.
Sieht dann als Flow so aus.
-
Ich habe da noch etwas gefunden. Es gibt wohl ein fertiges Node um einen String zu splitten. Leider komme ich damit nicht so wirklich gut klar. :x
ALso schnell eine kleines Javascript geschrieben.
Hier der Flow:
Hier das Ergebnis.
!
Die Werte stehen in msg.b1 - msg.b7 und könnten nach ioBroker übergeben werden.
-
Ja das ist gut. Wie sieht denn der Script aus ?
-
Ja das ist gut. Wie sieht denn der Script aus ? `
Wolltest Du nicht selber programmieren? :?Ich habe die Testversion noch etwas überarbeitet und von unnötigen Ballast befreit.
! ` > var string = msg.payload;
//String splitten
var s = [string.substr(0,2), string.substr(2,2),
string.substr(4,2), string.substr(6,2), string.substr(8,2),
string.substr(10,2), string.substr(12,2)];
//Umrechnung in Binär
var bin = [(parseInt(s[0], 16)).toString(2), (parseInt(s[1], 16)).toString(2),
(parseInt(s[2], 16)).toString(2), (parseInt(s[3], 16)).toString(2),
(parseInt(s[4], 16)).toString(2), (parseInt(s[5], 16)).toString(2),
(parseInt(s[6], 16)).toString(2)];
msg.bin = bin;
msg.s = s;
return msg; `
Wie man an die Variablen kommt ist hier ein wenig beschrieben: https://nodered.org/docs/user-guide/messages
-
Wolltest Du nicht selber programmieren? :? `
Ja, hast recht. Ich denke das reicht für den Anfang, werde mich jetzt intensiver damit befassen. Vielen Dank für die Unterstützung.
-
Genau so sollte es sein, nur dann lernst Du auch damit umzugehen. Mich hatte wieder einmal der Ehrgeiz gepackt und dann kann ich einfach nicht mehr damit aufhören. Und selber Arrays anzulegen war für mich auch noch neu.
Wenn Du Fragen hast oder weitere Hilfe brauchst, dann einfach posten. Gerne auch wenn Du dein Projekt erfolgreich zu Ende gebracht hast.
Ich werde den Thread im Auge behalten.
-
Wenn Du Fragen hast oder weitere Hilfe brauchst, dann einfach posten. Gerne auch wenn Du dein Projekt erfolgreich zu Ende gebracht hast.
Ich werde den Thread im Auge behalten.
`
Danke für die Motivation, ich werde berichten
.
-
Gern geschehen.
Hier noch etwas Grundlagenwissen in Bezug auf die Definition von Variablen in Node Red. viewtopic.php?f=32&t=12558#p133250
-
Wie kann ich den empfangenen String in Variablen abspeichern damit ich es im ioBroker verwenden kann ? Ich hab versucht im ioBroker manuel neue Objekte einzufügen, doch das steht in den Node-Red gar nicht zur Auswahl an. `
Dazu habe ich folgende Antwort gefunden:
viewtopic.php?f=20&t=13217&p=139126&hil … en#p139126
http://www.iobroker.net/docu/?page_id=5 ... inzufuegen
Ich habe es eben mal kurz getestet und unter dem Javascriptadapter ein neues Objekt angelegt. Dann mit Node Red verbunden und schon wird der Wert im Objekt auch angezeigt.
Also so ganz verkehrt ist diese Aussage dann wohl doch nicht. :mrgreen:
Bevor ich das installiert habe, habe ich gelesen, dass man den ioBroker auch ohne Programmierkenntisse benutzen kann.
Das ist auch so. Beschränkt natürlich die Möglichkeiten.
Und jetzt möchte ich möglichst nur noch von deinen Erfolgserlebnissen lesen.
-
Und jetzt möchte ich möglichst nur noch von deinen Erfolgserlebnissen lesen.
`
Bin auf den besten Weg dahin :mrgreen:
Ist wahrscheinlich nicht die eleganteste Lösung, aber solange es funktioniert bin ich vorerst zufrieden.
6863_unbenannt1.jpg
6863_unbenannt.jpg
6863_unbenannt.jpg
6863_unbenannt1.jpg
6863_unbenannt.jpg
6863_unbenannt1.jpg
6863_unbenannt.jpg
6863_unbenannt1.jpg
6863_unbenannt1.jpg -
Bin auf den besten Weg dahin :mrgreen:
Ist wahrscheinlich nicht die eleganteste Lösung, aber solange es funktioniert bin ich vorerst zufrieden. `
Sieht doch echt gut aus und es funktioniert. Da kannst Du mal sehen, wie schnell es dann doch gegangen ist.Gratulation.
P.S. Da hat wohl jemand zu oft editiert?! So etwas führt dann schnell zum Chaos mit den Dateianhängen.
Geht hier vielen so!
-
Ich gebs auf. Wenn ich die Datei einmal Anhänge hängt er mir die 5x dran…..
-
Bin auf den besten Weg dahin :mrgreen:
Ist wahrscheinlich nicht die eleganteste Lösung, aber solange es funktioniert bin ich vorerst zufrieden. `
Sieht doch echt gut aus und es funktioniert. Da kannst Du mal sehen, wie schnell es dann doch gegangen ist.Gratulation.
P.S. Da hat wohl jemand zu oft editiert?! So etwas führt dann schnell zum Chaos mit den Dateianhängen.
Geht hier vielen so! `
Danke.
Ja ich weiß nicht was der eigentlich macht. Entweder schmeißt er eine von zwei Dateien immer raus oder packt die andere mehrfach rein obwohl in den Anhängen nur eine drin ist.
-
Ich gebs auf. Wenn ich die Datei einmal Anhänge hängt er mir die 5x dran….. `
Du musst sie alle löschen und am besten in einem neuen Post einmal anhängen und dann sofort absenden. Dann sollte es klappen. :mrgreen: -
Beim nächsten mal probiere ich es nochmal.
-
So…...Ich bin schon weit gekommen, hab nur eine kleine Schwierigkeit. Ich hab in Vis ein Schalter und in Node-Red ein "Inject" welcher ein String "8000000000000000"versendet . Wie kann ich mit den Schalter diesen String versenden ? Es gibt ja das "ioBroker In" nur ich verstehe nicht wie ich das damit versenden kann.
Gruss
6863_unbenannt.jpg