NEWS
Leds schalten nicht Ws2812
-
Hallo. Ich habe einen Rpi3 mit Iobroker admin 3.6.0 am laufen.
Ich möchte per Script die einzelnen leds steuern. Leider reagieren sie aber nicht auf das Blockly.
Wenn ich aber die Daten über den Browser eingebe funktioniert es allerdings. Ebenso wenn ich die Befehle in der Konsole von Tasmota eingebe.D3 und G sind mit einer NodeMCU verbunden mit Tasmota 6.4.1.
Stimmt was an meinen Scripten nicht?
Über eine Antwort würde ich mich sehr freuen. -
@SeiteBallon74
Die Abfrage muss in den Trigger, weil sie sonst nur beim Skriptstart erfolgt. -
Wie meinst du das? Verstehe nur grob wie du das meinst. Bin so froh das mir da jemand hilft. Bin echt am verzweifeln. Danke für deine Zeit.
Könntest du mir das evtl etwas genauer beschreiben?
-
Bei den Texten schreibe ich dann einmal den led einschalten und im unteren Text led aus mit der URL? Und dann klappt das??
-
@SeiteBallon74 sagte:
Bei den Texten schreibe ich dann einmal den led einschalten und im unteren Text led aus mit der URL?
Ja, teste es.
Wert ist eine Eigenschaft des Triggerdatenpunktes (Früh). -
Danke dir für deine Antwort.
Aber woher weiß er das das Objekt den Status "wahr" oder "falsch" hat?
-
@SeiteBallon74 sagte:
woher weiß er das das Objekt den Status "wahr" oder "falsch" hat?
Durch die Prüfung falls Wert
Ein Vergleich ergibt als Ergebnis true oder false. Da der Wert schon true bzw. false enthält, genügtif(Wert) mache etwas bei Wert == true; else mache was anderes bei Wert == false;
-
Sorry aber stehe anscheinend voll auf dem Schlauch. Wie soll denn dann mein Script genau aussehen?
Nimmt er dann als erstes "true" bei "Wert" und erkennt dann wenn es nicht true ist das es dann false is oder wie? Oder gehört dann nach dem falls "Wert" = true dann mache....?Tut mir echt leid das ich das gerade nicht schnalle. Könntet ihr mir vielleicht sagen was ich wo reinschreiben muss damit es klappt? Dann kapier ich es vielleicht auch. Oh man..
-
@SeiteBallon74
Schiebe einfach Deinen Falls-Block in das "Maul" des Triggers, dann sollte es klappen. -
Alles klar. Danke
-
Nochmal. Ich glaube ich verstehe es jetzt. If enthält quasi true und else dann false oder?
Dann würde es wirklich reichen das ich nur oben die Objekt ID eingebe und bei If (=true) mache xyz
und bei else (=false) mache xyz?? Ja cool -
@paul53 Klappt leider nicht. Da passiert dann gar nichts.
-
@SeiteBallon74 sagte:
Da passiert dann gar nichts
Hast Du das Loglevel von request auf "info" gelassen ? Was sagt dann das Log ?
Poste mal den von Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags. -
// Früh
on({id: 'ical.1.events.2.Früh', change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if ((obj.state ? obj.state.val : "")) {
try {
require("request")('http://192.168.178.37/cm?cmnd=Led1 008800').on("error", function (e) {console.error(e);});
} catch (e) { console.error(e); }
} else {
try {
require("request")('http://192.168.178.37/cm?cmnd=Led1 000000').on("error", function (e) {console.error(e);});
} catch (e) { console.error(e); }
}
}); -
Hab gar nicht gewusst das das geht. Ich hoffe das passt so??
-
@SeiteBallon74 sagte:
Ich hoffe das passt so??
Code tags wären schön gewesen, denn so können sich Fehler einschleichen und es liest sich nicht so gut (alles linksbündig).
Der Code sieht in Ordnung aus. Ich würde in Objekt-IDs keine Umlaute benutzen (im Namen kein Problem). Ob die URL passt, kann ich nicht beurteilen. Kommen Log-Einträge, wenn Du den Loglevel von request auf "info" setzt ?
Funktioniert es im Browser, wenn in der URL nach Led1 ein Leerzeichen eingegeben wird ?
-
Sorry, war das erste Mal.
Du meinst wenn ich bei Tasmota logging verändere? Dort sind 3 verschiedene Loggruppen vorhanden. Welche brauchst du?
-
-
Nur das steht drin. Weil ich das Script immer neustarte um zu schauen ob es nun geht.
javascript.0
2019-06-30 17:49:24.375 info script.js.Aktive_Scripts_1.Statusanzeige_Bilderrahmen_Kopie_Test: registered 1 subscription and 0 schedulesjavascript.0
2019-06-30 17:49:24.367 info Start javascript script.js.Aktive_Scripts_1.Statusanzeige_Bilderrahmen_Kopie_Testjavascript.0
2019-06-30 17:49:24.337 info Stop script script.js.Aktive_Scripts_1.Statusanzeige_Bilderrahmen_Kopie_Testjavascript.0
2019-06-30 17:47:09.267 info script.js.Aktive_Scripts_1.Statusanzeige_Bilderrahmen_Kopie_Test: registered 1 subscription and 0 schedulesjavascript.0
2019-06-30 17:47:09.251 info Start javascript script.js.Aktive_Scripts_1.Statusanzeige_Bilderrahmen_Kopie_Testjavascript.0
2019-06-30 17:47:09.229 info Stop script script.js.Aktive_Scripts_1.Statusanzeige_Bilderrahmen_Kopie_Test -
@SeiteBallon74 sagte:
Weil ich das Script immer neustarte um zu schauen ob es nun geht.
Ein Neustart löst keinen Trigger aus !
Der Datenpunkt 'ical.1.events.2.Früh' muss aktualisiert werden, damit getriggert wird. Das kann manuell im Reiter "Objekte" erfolgen.