NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
@liv-in-sky ich habe joergeli seine Version runter geworfen, nachdem auch ich es endlich geschaft habe, deine Version fehlerfrei zu komplilieren. Jetzt sitze ich aber schon eine ganze Zeit daran eine Verbindung zu Stande zu bekommen. Im Display wird mir immer htp Failure angezeigt.
Habe alles so gemacht wie bei deiner GIT Anleitung, außer das ich eine statische IP (die vom WEMOS) vergeben habe.
Also die Vergebene IP finde ich im Netzwerk. Mein Problem ist, das ich nicht weiß was ich bei dem simple API Adapter einstellen muss.
-
lust auf anydesk oder teamviewer
-
@liv-in-sky Sorry - war einkaufen - heute Abend vielleicht über Discord? Habe leider kein Teamviewer und jetzt auch keine Zeit mehr.
-
bis 19:00 wäre ok - meld dich nochmal
-
@liv-in-sky bist du auch bei Discord - ich meine da in dem neuen ioB Channel?
https://discord.com/channels/743167951875604501/743167952303554620
-
@JB_Sullivan ja -habe aber nur mal reingeschaut - was ich machen muss um screen zu teilen bzw du - keine ahnung
anydesk wäre aber backup lösung - kann man direkt ausführen und muss nicht installiert werden - ist echt gutes tool
-
@liv-in-sky OK -anydesk geht wie? - habs gerade installiert und jetzt?
-
downloaden und aufrufen - dann rufen wir uns zusammen ( ich habe kein micro am gerät)
-
@JB_Sullivan aufrufen und da gibt es eine nummer die ich brauche um mich zu verbinden - dann bestätigst du, dass die verbindung ok ist - das war's
-
@liv-in-sky Nummer habe ich - bekommst du per PN
-
@liv-in-sky vielen Dank nochmal für das nette Gespräch und vor allen Dingen die erfolgreiche Lösung der vielen kleinen Problemchen
-
@JB_Sullivan
Sorry für die späte Antwort, ich war unterwegs.Ich vermute, dass der Wemos korrekt geflasht wurde, da die Anzeige "... warte auf Daten von ioBroker" angezeigt wird.
Wahrscheinlich liegt das Problem im JS-Script.Ich habe Dir deshalb mal ein Test-Script angehängt, mit dem nur 4 Strings in den Ausgabe-Datenpunkt geschrieben werden.
Es werden also keine realen Meßwerte, bzw. Datenpunkte benötigt.//########################################## // Beispiel ioBroker Matrix-Laufschrift Test //########################################## //________________________________________________________________ //Script jede 47te Sekunde ausfuehren schedule('47 * * * * *', Laufschrift_Aktualisieren); //________________________________________________________________ function Laufschrift_Aktualisieren() { //______________________________________________________________________________________ //Wemos IP-Adresse var udpIP = '192.168.192.19' // lokale IP-Adresse des Wemos //Ausgabe-Datenpunkt var ausgabe_datenpunkt = 'javascript.0.Laufschrift'; // Ausgabe-DP muss mit der URL im Wemos übereinstimmen! //______________________________________________________________________________________ //Test-Datenpunkte var test1 = "Das ist Teststring 1;" ; var test2 = "Jetzt kommt Nr. 2;" ; var test3 = "Aller guten Dinge sind 3;" ; var test4 = "... und noch Nr. 4;" ; // z.B. Teststrings 1-3 zusammenfassen_______________________________ var test = test1 + test2 + test3 //______________________________________________________________________________________ // Ausgabestring aus den EinzelStrings zusammensetzen: var ausgabe = test + test4 + "Test-Ende;" //______________________________________________________________________________________ // kpl. Ausgabestring in Datenpunkt schreiben var pfad = ausgabe_datenpunkt setState(pfad , ausgabe, true); //log('----' + ausgabe + '----'); //______________________________________________________________________________________ // "update" an WEMOS senden (pushen), damit dort die Laufschrift sofort aktualisiert wird const dgram = require('dgram'); var udpPort = 6610 var udpMessage = "update" var client = dgram.createSocket('udp4'); client.send(udpMessage, 0, udpMessage.length, udpPort, udpIP, function(err, bytes) { if (err) throw err; client.close(); }) //______________________________________________________________________________________ } //Ende function Laufschrift_Aktualisieren
Damit werden nur 4 Teststrings auf der Laufschrift ausgegeben.
Es muss natürlich sichergestellt sein, dass die IP-Adresse im WEMOS mit dieser hier im Script übereinstimmt.var udpIP = '192.168.192.19'
Musst Du natürlich auf Deine Netzwerkumgebung anpassen!
Gruß
JörgP.S.
Ich sehe gerade, daß Du den Wemos jetzt mit @liv-in-sky - Sketch geflashed hast und ihr eine Lösung gefunden habt.
Rein interessehalber: Lag das Problem an JS-Script, oder woanders? -
@joergeli - ja wir hatten das Problem lösen können - ich bin immer noch am fummeln, denn jetzt geht es darum den "Master" Datenpunkt mit Inhalten zu füllen. Dafür müsste doch auch dein javascript geeignet sein - oder? Wenn die Daten alle zusammen gesammelt sind, werden die ja auch in einen Datenpunkt geschrieben, den liv-in-sky ja auch abholt.
Das Problem bei liv-insky, war, das dass Sketch einen Zeitserver im Internet abfragen wollte. Da keine Freigabe ins Web besteht, ist das Programm dann einfach stecken geblieben. Knackpunkt war das, die Fritzbox als Zeitserver eintragen werden musste.
Ich habe dein Skript schon etwas zusammen gestrichen, aber ich bekomme immer eine Fehlermeldung wegen POST IST DA.
// //################################## // ioBroker Matrix-Laufschrift //################################## //________________________________________________________________ //Script jede 30te Sekunde ausfuehren schedule('30 * * * * *', Laufschrift_Aktualisieren); //________________________________________________________________ //Laufschrift_Aktualisieren(); // nur! wenn manuell getestet werden soll function Laufschrift_Aktualisieren() { //______________________________________________________________________________________ //Wemos IP-Adresse var udpIP = '10.122.60.99' // IP-Adresse des Wemos, bzw. der DOT Matrix Laufschrift //Ausgabe-Datenpunkt var ausgabe_datenpunkt = 'javascript.0.MATRIX.Matrix'; // Ausgabe-Datenpunkt muss mit der URL im Arduino-Sketch des Wemos übereinstimmen! //______________________________________________________________________________________ //Einlese-Datenpunkte - müssen natürlich an die eigene Konstellation angepasst werden! var temp_basic = getState('sonoff.0.Pool Basic.DS18B20_Temperature').val ; // Aussen Temp am Pool var wind_speed = getState('rflink.0.channels.LaCrosseV3_1.WINSP').val ; // Windgeschwindigkeit var ludru = getState('rflink.0.channels.LaCrosseV3_4.BARO').val ; // Luftdruck var post_ist_da = getState('innogy-smarthome.0.Garten.Bodenfeuchte.IsOpen').val ; // Post ist da //______________________________________________________________________________________ //Windgeschwindigkeit (km/h) in Windstärke (Bft) umrechnen if(wind_speed <= 1) { var bft = 0 } else if(wind_speed > 1 && wind_speed <= 5) { var bft = 1 } else if(wind_speed > 5 && wind_speed <= 11) { var bft = 2 } else if(wind_speed > 11 && wind_speed <= 19) { var bft = 3 } else if(wind_speed > 19 && wind_speed <= 28) { var bft = 4 } else if(wind_speed > 28 && wind_speed <= 38) { var bft = 5 } else if(wind_speed > 38 && wind_speed <= 49) { var bft = 6 } else if(wind_speed > 49 && wind_speed <= 61) { var bft = 7 } else if(wind_speed > 61 && wind_speed <= 74) { var bft = 8 } else if(wind_speed > 74 && wind_speed <= 88) { var bft = 9 } else if(wind_speed > 88 && wind_speed <= 102) { var bft = 10 } else if(wind_speed > 102 && wind_speed <= 117) { var bft = 11 } else if(wind_speed > 117 ) { var bft = 12 } //______________________________________________________________________________________ //Luftdruck runden var luftdr = round (ludru,0) //Windgeschwindigkeit runden var windgeschw = round (wind_speed,0) //Wohnzimmer Feuchte runden //var wohnzfeuchte = round (feuchte_wohnz,0) //______________________________________________________________________________________ /* // Nur zur Info Sonderzeichen: $ = degC - = line = plus _ = rechteck-block ! = ü ? = ö ^ = ä ` = ß */ //______________________________________________________________________________________ //______________________________________________________________________________________ // Ausgabestring aus den EinzelStrings zusammensetzen: //_____________________________________________________ // Wenn RaspberryMatic DutyCycle >= 49%, nur! den DutyCycle ausgeben. // Wenn Post da ist, nur! den "Post ist da-String" ausgeben, ggf. zusaetzlich den DutyCycle, // ansonsten komplette Ausgabe aller Variablen if (post_ist_da == true) { var ausgabe = PostIstDa } else{ var ausgabe = PostIstDa + temp_basic + wind_speed + ludru } //______________________________________________________________________________________ // Ausgabestring in Datenpunkt schreiben var pfad = ausgabe_datenpunkt setState(pfad , ausgabe, true); log('----' + ausgabe +' ----'); //______________________________________________________________________________________ // "update" an WEMOS senden (pushen), damit dort die Laufschrift sofort aktualisiert wird const dgram = require('dgram'); var udpPort = 6610 var udpMessage = "update" var client = dgram.createSocket('udp4'); client.send(udpMessage, 0, udpMessage.length, udpPort, udpIP, function(err, bytes) { if (err) throw err; client.close(); }) //______________________________________________________________________________________ } //Ende function Laufschrift_Aktualisieren // Funktion zum Runden von Zahlen function round(wert, dez) { wert = parseFloat(wert); if (!wert) return 0; dez = parseInt(dez); if (!dez) dez=0; var umrechnungsfaktor = Math.pow(10,dez); return Math.round(wert * umrechnungsfaktor) / umrechnungsfaktor; } //Ende function round
-
Ich habe jetzt immer noch das Sketch von liv-in-sky drauf. Unabhängig davon müsste doch auch dein Testscript etwas in den Datenpunkt hinein schreiben - das macht es aber nicht.
Wenn sich der Inhalt des Datenpunktes ändert, würde in diesem Fall nicht dein Skript etwas an den WEMOS senden, sonder liv-in-sky würde den Inhalt des Datenpunktes abholen.
Wie gesagt, der Pferdefuss ist, das dein Skript den Datenpunkt nicht beschreibt.
-
@joergeli Weil du dir soviel Arbeit gemacht hast, habe ich jetzt dein Arduino Sketch nochmal geflasht - allerdings auch hier mit der Änderung, das der Zeitserver auf die IP Adresse der FritzBox verweist.
Was soll ich sagen, Das Test Skript funktioniert !!!! Allerdings dein Ursprungs Skript geht leider nicht
-
@JB_Sullivan
Ich weiß nicht, wie @liv-in-sky sein Ausgabe-Datenpunkt heißt.Mach mak folgendes:
1.) Lege manuell einen Datenpunkt javascript.0.Laufschrift an ( Typ Zeichenkette, Haken bei "Lesen erlaubt" und "Schreiben erlaubt setzen)2.) Kopier Dir mein Test-Script "Beispiel ioBroker Matrix-Laufschrift Test"-( 2 Posts weiter oben).
3.) Starte das Beispiel.Script.
4.) Dann sollten die 4 Teststrings jede 47te Sekunde in den Datenpunkt javascript.0.Laufschrift geschrieben werden.
Du hat richtig erkannt, daß das Testscript auch mit @liv-in-sky's Wemos funktionieren müsste.
Wenn der Datenpunkt korrekt beschrieben wird, sehen wir weiter.
Gruß
Jörg -
@joergeli lies mal meine letzte Antwort über deiner hier
-
@JB_Sullivan
... jepp, ich war 2 Minuten zu spätIch schreibe gleich noch was ....
-
@joergeli JA, das Javascript von deiner Homepage ist Mega umfangreich. Wenn man da mal eben seine eigenen paar Datenpunkte einsetzen will um zu sehen das es geht, vergalloppiert man sich sehr schnell.
Was ich bei fly-in-sky seinem Sketch/Skript gut finde, ist die Möglichkeit via Datenpunkte die Modi, Leuchtstärke und Geschwindigkeit zu ändern ohne das man einen Hardware Knopf drücken muss.
-
Zitat "Allerdings dein Ursprungs Skript geht leider nicht"
Ich hatte ja geschrieben, dass mein Script nur als "Gerüst" dienen soll, Du kannst das nicht 1:1 übernehmen,
da Du ja andere Sensoren/Aktoren/Datenpunkte als ich verwendest.Was ist denn der zu var post_ist_da zugehörige
Datenpunkt getState('innogy-smarthome.0.Garten.Bodenfeuchte.IsOpen').val ; für ein Typ?
Er darf m.E. nur true/false werden.
Ansonsten lösch temporär vorerst mal alles raus, was mit "Post ist da" zu tun hat.@JB_Sullivan sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Was ich bei fly-in-sky seinem Sketch/Skript gut finde, ist die Möglichkeit via Datenpunkte die Modi, Leuchtstärke und Geschwindigkeit zu ändern ohne das man einen Hardware Knopf drücken muss.
Das geht bei mir leider nicht.
Ich lasse bloß die Helligkeit mit einem LDR (lichtabhängiger Widerstand, s. Schaltplan) automatisch ein wenig an die Umgebungshelligkeit anpassen.
Mit den Modi/Geschwindigkeit habe ich anfangs auch ein wenig rumgespielt, allerdings läuft meine Laufschrift jetzt nur noch im Modus "von rechts nach links".Gruß
Jörg