NEWS
[gelöst] SerialPort-Adapter
-
Hallo zusammen,
ich bin ganz frisch in den ioBroker eingestiegen und auch mit Linux hab ich bis jetzt nicht viel zutun gehabt. Vorab, der ioBroker läuft auf nem Raspi 3.
Ich habe eine Elektronik die testweise alle paar Sekunden über Ihre UART-Schnittstelle ein String sendet. Ich hab im Netz gelesen, dass man den Serial Port erst akivieren muss. Unter "raspi-config" / Interfaceing Options / P6 Serial" hab ich damit getan. Mit den Befehl "cat /boot/config.txt" sehe ich auch den Wert "enable_uart=1". Jetzt ist mir nicht so ganz klar, wie ich mir in den ioBroker.admin diesen String anzeigen lassen kann. Ich habe bereits ein paar Adatper installiert, z.B. den "ioBroker.hs100". Unter "Objekte" sehe ich ein paar Werte, so stelle ich mir das auch für den String vor. Wie geht das ?
Gruss
-
Herzlich Willkommen im Forum pfushy,
es gibt keinen SerailPort-Adapter. Da musst du dir ein Skript schreiben.
Dazu benötigt wird das Modul "serialport", wenn du Glück hast brauchst du das nicht mal installieren weil es schon da ist.
Um das zu Testen erstellst du dir ein Skript mit folgenden Code:
var SerialPort = require('serialport');
Jetzt auf Play Klicken und das Speichern bestätigen, wenn jetzt im Log ein roter Text auftaucht der Sagt das er das Modul nicht gefunden hat musst du es installieren.
Dazu öffnest du die Konfiguration deiner Javascript-Adapter instanz und trägst bei "Zusätzliche npm-module" "serialport" ein. Dann Speichern und Schließen. Jetzt dauert es etwas bis das Modul installiert ist.
Jetzt kannst du dein Skript schreiben.
https://www.npmjs.com/package/serialport#opening-a-port findest du die Beschreibung zum Modul und wie man damit eine Verbindung aufbaut.
-
Oder node-red adapter benutzen: https://flows.nodered.org/node/node-red-node-serialport
-
@Jey Cee:Jetzt kannst du dein Skript schreiben.
https://www.npmjs.com/package/serialport#opening-a-port findest du die Beschreibung zum Modul und wie man damit eine Verbindung aufbaut. `
Uff…, das scheint ziemlich kompliziert zu sein. Ich hab folgendes in das Script kopiert und gestartet:
var SerialPort = require('serialport'); var port = new SerialPort('/dev/tty-usbserial1', { baudRate: 57600 }); port.write('Hi Mom!'); port.write(Buffer.from('Hi Mom!'));
Im Log gibt es auch keine Fehlermeldung. Mein Hyperterminal bekommt aber keinen String. Für ein Afänger ist das wirklich nicht einfach gestaltet. Ich weiß auch gar nicht ob die Angabe der Serialports (/dev/tty-usbserial1) richtig ist. Damit kommen wir zum zweiten Versuch:
Oder node-red adapter benutzen: https://flows.nodered.org/node/node-red-node-serialport `
Ich hab es hinbekommen, den Serialport zu installieren und wie man im Bild sieht auch eine Verbindung aufzubauen. Nunn weiß ich aber immer noch nicht ob der Serialports (/dev/tty-usbserial1) richtig ist. Auch hier passiert nicht in meinen HyperTerminal. Ich den vorher natürlich mit einem Echo getestet.
Für weitere Hilfen wäre ich dankbar.
6863_unbenannt.jpg
6863_unbenannt1.jpg -
Naja, nach dem neustart funktioniert jetzt gar nichts mehr.
Kann mir jemand mit den Script helfen ? Ich hab den link versucht abzuarbeiten. Ehrlich gesagt mach ich zwar alles was da steht, jedoch hab ich keine Ahnung was ich eigentlich mache. Entweder liegt es an den Linux oder der ioBroker ist zu komplitziert. Bevor ich das installiert habe, habe ich gelesen, dass man den ioBroker auch ohne Programmierkenntisse benutzen kann. Naja so richtig stimmt das nicht. Ich hab schon viele Projekte in C geschrieben und auch die eine oder andere PHP zum auswerten benutzt, aber mit den ioBroker stosse ich momentan an meine Grenze. Hilfe….
-
Ehrlich gesagt mach ich zwar alles was da steht, jedoch hab ich keine Ahnung was ich eigentlich mache. ` Und genau hier liegt dein eigentliches Problem.
@pfuhsy:Entweder liegt es an den Linux oder der ioBroker ist zu komplitziert. ` Weder noch, in beide Themen muss man sich mit viel Zeit über einen längeren Zeitraum intensiv einarbeiten. Und ob man den ioBroker braucht um nur einige Daten über die serielle Schnittstelle zu schieben, wofür auch immer, wäre so als würde man mit Kanonen auf Spatzen schießen wollen. Dafür dürfte sicher auch Node Red als Standaloneversion, Pyhton, PHP usw. genauso gut geeignet sein. Willst Du jedoch eine Homeautomation aufbauen, dann ist der ioBroker sicher eine sehr gute Wahl.
@pfuhsy:Bevor ich das installiert habe, habe ich gelesen, dass man den ioBroker auch ohne Programmierkenntisse benutzen kann. ` Da hast Du sicher etwas völlig falsch verstanden. In jedes System, in jede Programmiersprache usw. muss man sich einarbeiten, damit man weiß was man tut und es am Ende auch funktioniert.
Gerade erst selber wieder erfahren, und ich wollte nur ein Sonoff Pow flashen. In dem Tutorialvideo sah alles total einfach aus, letztendlich habe ich jetzt fast zwei Tage Arbeit in so eine simple Sache gesteckt.
Du musst für dich erst einmal festlegen was du überhaupt für deine Problemlösung brauchst und dir dann die Zeit nehmen, um dich in das Thema einzuarbeiten.
Ich bin vor gut einem halben Jahr mit dem Thema gestartet und bei der Node-Red Standaloneversion hängen geblieben. Mit ioBroker habe ich erst in diesem Jahr begonnen, und dies auch nur, weil es hier so einen geilen und gut funktionierenden M-Bus Adapter gibt. Ansonsten realisiere ich alles in Node-Red.
Als Anfänger jedoch direkt mit der Kommmunikation über den seriellen Port zu beginnen, na ich weiß nicht so recht. Ich bin damals mit Node Red und den simplen "Hello World" Beispielen gestartet und habe mich dann langsam nach Vorne getastet. Man muss schon eine Menge lesen (meist in Englisch) und Tutorials auf Youtube schauen, dann klappt es dann auch irgendwann.
Vielleicht magst Du uns mal dein Projekt etwas näher erklären und wir können dich dann in richtige Richtung schubsen.
-
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.Deine Info:
@pfuhsy:Ich habe eine Elektronik die testweise alle paar Sekunden über Ihre UART-Schnittstelle ein String sendet. `
ist natürlich schon keine Standardinstallation mehr.Gruß
Rainer
-
Hallo,
eigentlich versuche ich mich heranzutasten, doch gerade mein erster Schritt beginnt mit der seriellen Schnittstelle. Gerne schreibe ich euch mal meinen Gedankengang und was ich so vor habe, meine Frau interessiert das nicht wirklich :lol: .
Ich hab eine selbstentwickelte Alarmanlage die zyklisch einen Statusbericht per WLAN (Zusatzmodul ESP8266) an meinen Synology Webserver sendet. Mit einer PHP schreibe ich die Daten in eine XML. Über eine Intranetseite kann ich mir dann den Status aufgehübscht ansehen. Funktioniert ganz gut. Mein nächster Schritt ist es, die Anlage fernzusteuern, z.B. über eine Zeitsteuerung oder Ping ans Smartphone. Da ich ein paar Komponenten habe (TP-Link und Intertechno Steckdosen) und ich in laufe der Zeit noch Homematic-Lichtschalter und elektr. Jalousien haben wollte, dachte ich mir: "Hej, so eine Automatisierung wäre doch nicht schlecht." Mit Visualisierung meiner Alarmanlage angefangen und dann zu Lichtschaltern, Jalousien, vielleicht später noch eine Temperaturregleung usw. Dabei bin ich auf openHAB und ioBroker gestossen. Durch ein wenig herumprobieren und Berichten im Internet bin ich bei ioBroker hängen geblieben. Da mein Server eigenlich meine Mediathek ist und ich ihn nicht weiter belasten wollte, hab ich mir den Rapsi 3 gekauft und das ioBroker-Image drauf geladen. Nun macht es aber keinen Sinn mehr, erst den Statusbericht meiner Anlage auf den Server abzulegen und den dann vom Pi auszulesen, sondern ihn direkt per UART an den Pi zu übermitteln. Zumal sollen die beiden in Zukunft auch in denselben Verteilerkasten sitzen.
Daher kommt mein erster Schritt mit der seriellen Schnittstelle zu beginnen und nach und nach meine Automatisierung zu ergänzen.
-
Daher kommt mein erster Schritt mit der seriellen Schnittstelle zu beginnen und nach und nach meine Automatisierung zu ergänzen. `
O.K., nun bekommt alles schon einmal einen Sinn und ioBroker für die Umsetzung ist absolut sinnvoll.Du musst dich jetzt nur noch für einen Weg entscheiden, Javascript oder Node Red. Wobei ich dir aus eigener Erfahrung sagen kann, auch in Node Red kommt man an der Javascriptprogrammierung (Function-Node) nicht vorbei.
Wenn ich deinen Post mit dem Node Red Flow richtig verstehe hast Du am USB Port des Raspi einen USB/Serielladapter angeschlossen?
-
Du musst dich jetzt nur noch für einen Weg entscheiden, Javascript oder Node Red. Wobei ich dir aus eigener Erfahrung sagen kann, auch in Node Red kommt man an der Javascriptprogrammierung (Function-Node) nicht vorbei. `
Ich denke die Javascripte wären für mich das Richtige. Die Syntax ist der aus C sehr ähnlich, ausserdem hätte ich über Blocky die Möglichkeit mir ein paar Anregungen zu holen. Die Doku dazu https://github.com/ioBroker/ioBroker.ja … ascript.md ähnelt auch den, was ich schon bereits für PHP verwende. Der übermittelte String ist eine Anreihung von 2stelligen Hex-Zahlen z.B. "0003000ABCFF". Ich würde die Logik an der Stelle jetzt drehen. Also nicht die Elektronik sendet zyklisch, sondern der ioBroker sendet mit demselben Format eine Anfrage. Diese Anfrage beinhaltet ggf. auch eine Einschaltung der Alarmanlage. Die Elektronik soll dann darauf reagieren und eine Antwort zurückschicken. Der ioBroker soll den String in einzelne Funktionen auftrennen und in mehreren Variablen zur weiteren Verabeitung zur Verfügung stellen. Doch hier hackt es schon beim ersten Schritt eine stabile Verbindung herzustellen.
Wenn ich deinen Post mit dem Node Red Flow richtig verstehe hast Du am USB Port des Raspi einen USB/Serielladapter angeschlossen? `
Nicht ganz.
Netzteil versorgt den Konverter mit 5V.
Netzteil 0V–>Raspi GPIO Pin 6 (Gnd).
PC-->USB-UART-Konverter-->UART-TX-->Spannungsteiler-->Raspi GPIO Pin 10 (RxD)
PC-->USB-UART-Konverter-->UART-RX-->Raspi GPIO Pin 8 (TxD)
In den Feld "Serial Port" hab ich jetzt "/dev/ttyS0" eingetragen. Wie schon geschrieben funktionierte das in eine Richtung, aber nur bis zum Neustart.
-
Ich denke die Javascripte wären für mich das Richtige. `
Dann bin ich leider raus, da ich primär meine Programmieraufgaben mit Node Red löse. Die Javascriptprogrammierung ist mir zwar nicht total fremd, aber eher wohl noch im Anfängerstatus.
@pfuhsy:In den Feld "Serial Port" hab ich jetzt "/dev/ttyS0" eingetragen. Wie schon geschrieben funktionierte das in eine Richtung, aber nur bis zum Neustart. ` Was ja auch bei der Nutzung der GPIO's richtig wäre.
Ich kenne den Hardwareaufbau deiner Alarmanlage nicht, deshalb werfe ich einfach mal die Frage in den Raum, ob Du nicht über MQTT mit der Anlage kommunizieren könntest.
Wie schon geschrieben funktionierte das in eine Richtung, aber nur bis zum Neustart. ` Erkläre doch bitte von welchem Neustart Du schreibst.
-
Dann bin ich leider raus, da ich primär meine Programmieraufgaben mit Node Red löse. Die Javascriptprogrammierung ist mir zwar nicht total fremd, aber eher wohl noch im Anfängerstatus. `
Es wäre schon ein Anfang wenn das über Node-Red stabil funkieren würde. Ich hab das mal als Standalone-Variante an meinen Windwow-PC installiert. Da funktionert das ohne Probleme. Also denke ich, dass der Flaschenhals die Unerwissenheit in Bezug auf den Raspi ist.
Ich kenne den Hardwareaufbau deiner Alarmanlage nicht, deshalb werfe ich einfach mal die Frage in den Raum, ob Du nicht über MQTT mit der Anlage kommunizieren könntest. `
Die Anlage läuft mit einen Atmega8. Ich hab die UART- und die I²C-Schnittstelle zur externen Kommunikation ausgeführt. Was darüber gesendet und empfangen wird, entscheide ich in der Software des Controllers. Mit der MQTT-Schnittstelle hab ich mich noch nicht auseinander gesetzt. Bei einer neuen Kommuniktion hab ich immer das Problem, dass ich bei Schwierigkeiten nicht weiß was nicht funkioniert, wenn es mehrere Auslöser dafür geben könnte. Für den Anfang versuche ich deshalb über die UART-Schnittstelle zu kommunizieren, da diese bereits läuft. Das wäre dann ein "Problem" weniger um welches ich mich kümmern muss.
Erkläre doch bitte von welchem Neustart Du schreibst. `
Ich meinte damit, dass ich irgendwann die Nase voll hatte und das Netzteil des Konverters sowie den Raspi ausgeschaltet habe. Ein paar Stunden später kam ich dann voller Elan zurück und startet den Raspi und schaltete das Netzteil des Konverters ein. Ab da ging nichts mehr.
-
Ich meinte damit, dass ich irgendwann die Nase voll hatte und das Netzteil des Konverters sowie den Raspi ausgeschaltet habe. Ein paar Stunden später kam ich dann voller Elan zurück und startet den Raspi und schaltete das Netzteil des Konverters ein. Ab da ging nichts mehr. ` :lol: Oh Mann, dass kenne ich nur zu gut.
DIes deutet evtl. auf einen Konfigurationsfehler bzgl. der seriellen GPIO Schnittstelle hin?! Ich bin mir auch nicht so sicher, ob der Weg über die serielle Verbindung der GPIO's wirklich gut ist. Da fehlt mir leider die Erfahrung.
Aber wenn doch die Kommunikation in der Node-Red Standaloneversion auf deinem Windowsrechner funktioniert, dann klappt dies auch auf dem Raspi.
Ich würde da den gleichen Weg wählen und über die USB-Schnittstelle des Raspi gehen, dann sollte es doch funktionieren. Er hat ja immerhin vier USB Schnittstellen. Wenn Du das fertige Node für die serielle Schnittstellenkommunikation verwendest, dann wird auch die Schnittstelle über das Node richtig konfiguriert. Dies sollte auch nach einem Neustart der Fall sein, ansonsten einfach mal nachsehen woran es hängen könnte.
-
DIes deutet evtl. auf einen Konfigurationsfehler bzgl. der seriellen GPIO Schnittstelle hin?! Ich bin mir auch nicht so sicher, ob der Weg über die serielle Verbindung der GPIO's wirklich gut ist. Da fehlt mir leider die Erfahrung. `
So schnell lasse ich mich nicht von den Teil fetig machen. Ich bin dieser Anleitung "http://www.digijunkies.de/raspberry-pi- … eren-43332" gefolgt (gefühlt die 10te) und jetzt funktioniert es, senden und empfangen. Sogar der Javascript mit folgenden Zeilen hat gefruchtet:
var SerialPort = require('serialport'); var port = new SerialPort('/dev/ttyAMA0', { baudRate: 9600 }); port.write('Hi Mom!');
Bei dieser Variante dauerte es aber teileweise 10s bis der String angekommen ist, keine Ahnung warum.
Wenn ich das richtig gesehen habe hatte ich mehrere Probleme. Zum einen die UART-Config vom Raspi war anscheinend nicht richtig eingestellt. Ich hatte darüber noch zusätzlich Zugang zur Konsole. Zum anderen die Bedienung des Flows. In der Einstellung gibt es ein "Split Input on character….". Dort hatte ich zwischendurch "\n" stehen. Wenn er aber das Zeichen nicht empfängt, zeigt er einfach gar nichts an bis es kommt. Und das dritte was mir aufgefallen ist, das der WLAN vom Raspi regelmäßig zusammenbricht und ich hatte keine Verbindung mehr. Komischerweise ist das jedesmal passiert, wenn ich den Rapsi mit den Konverter verbunden habe. Eine Lösung habe ich dafür noch nicht, nur ein Workarround, ich nutze den Ethernetport .
Mal sehen ob das alles morgen auch noch funktioniert .
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.
Aber wenn doch die Kommunikation in der Node-Red Standaloneversion auf deinem Windowsrechner funktioniert, dann klappt dies auch auf dem Raspi.
Ich würde da den gleichen Weg wählen und über die USB-Schnittstelle des Raspi gehen, dann sollte es doch funktionieren. Er hat ja immerhin vier USB Schnittstellen. Wenn Du das fertige Node für die serielle Schnittstellenkommunikation verwendest, dann wird auch die Schnittstelle über das Node richtig konfiguriert. Dies sollte auch nach einem Neustart der Fall sein, ansonsten einfach mal nachsehen woran es hängen könnte. `
Wie nutze ich die USB-Schnittstelle denn ? Wäre auch eine Alternative.
-
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.