NEWS
Sonoff NSPanel
-
@dapeace sagte in Sonoff NSPanel:
@tt-tom Ich hab mir von weiter oben aus einem Thread die 4 Entitys mal rauskopiert und hab meine gelöscht und plötzlich gehts... Die variable war natürlich auf false. sobald sie auf true war waren die Accuweather-Icons da.
Problem Nr. 1 besteht immer noch.
Was mich wundert ist der Unexpected token u
Schaut momentan noch so aus:
09:00:00.263 error javascript.0 (28026) script.js.common.NSPanel_Wozi: SyntaxError: Unexpected token u in JSON at position 0 09:00:00.263 error javascript.0 (28026) at script.js.common.NSPanel_Wozi:687:37 09:00:00.264 error javascript.0 (28026) at step (script.js.common.NSPanel_Wozi:33:23) 09:00:00.264 error javascript.0 (28026) at Object.next (script.js.common.NSPanel_Wozi:14:53) 09:00:00.264 error javascript.0 (28026) at script.js.common.NSPanel_Wozi:8:71 09:00:00.265 error javascript.0 (28026) at __awaiter (script.js.common.NSPanel_Wozi:4:12) 09:00:00.265 error javascript.0 (28026) at script.js.common.NSPanel_Wozi:673:16
Besteht irgendeine Möglichkeit das Wettersymbol Links wenigstens mit der richtigen Aussentemperatur zu versehen?
Die Temperaturen sind ziemlich weit von den Sensoren am Haus entfernt.Grüsse
- Kannst du kurz sagen, welcher Funktionname in den Zeilen 673 - 687 aufgerufen werden? Durch die unterschiedlichen Parametrierungen im Header verschiebt sich das oft.
- Sind alle Datenpunkte unter 0_userdata.NSPanel.... korrekt gefüllt?
- Dann würde mich noch interessieren, wie die beiden Zeilen bei dir aussehen:
panelRecvTopic: "mqtt.0.SmartHome.NSPanel_2.tele.RESULT", //anpassen panelSendTopic: "mqtt.0.SmartHome.NSPanel_2.cmnd.CustomSend", //anpassen
-
@armilar Hallo,
also so ruft er das Panel abpanelRecvTopic: "mqtt.0.SONOFF.NSPanelWozi.tele.RESULT", panelSendTopic: "mqtt.0.SONOFF.NSPanelWozi.cmnd.CustomSend",
und das sind Zeile 684-702
function get_online_berry_driver_version() { exec('curl https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be', function (error, result, stderr){ if (result) { let BerryDriverVersionOnline = result.substring((result.indexOf("version_of_this_script = ") + 24), result.indexOf("version_of_this_script = ") + 27).replace(/\s+/g, ''); createState(NSPanel_Path + "Berry_Driver.onlineVersion"); setIfExists(NSPanel_Path + 'Berry_Driver.onlineVersion', BerryDriverVersionOnline); } }); } function check_version_tft_firmware() { exec('curl -X GET -k \'https://api.github.com/repos/joBr99/nspanel-lovelace-ui/releases/latest\'', function (error, result, stderr){ //GitAPI aufruf für JSON Inhalt von Latest Tasmota Release var NSPanel_JSON = JSON.parse(result) //JSON Resultat in Variable Schreiben var NSPanelTagName = NSPanel_JSON.tag_name //created_at; published_at; name ; draft ; prerelease var NSPanelVersion = NSPanelTagName.replace(/v/i, ""); //Aus Variable überflüssiges "v" filtern und in Release-Variable schreiben createState(NSPanel_Path + "TFT_Firmware.onlineVersion"); setIfExists(NSPanel_Path + 'TFT_Firmware.onlineVersion', NSPanelVersion); }); }
Es gibt aber irgendwie ein Problem mit den Daten die er vom Panel kriegt. Ich habe keine Daten bei Tasmota in der Unterrubrik (Hardware, Uptime, Version). Die Version kriegt wer aber (ist bei mir alles von Freitag also 12.1.0 und auch die Versionen die auf dem Panel laufen.
Grüsse
-
@dapeace sagte in Sonoff NSPanel:
@armilar Hallo,
also so ruft er das Panel abpanelRecvTopic: "mqtt.0.SONOFF.NSPanelWozi.tele.RESULT", panelSendTopic: "mqtt.0.SONOFF.NSPanelWozi.cmnd.CustomSend",
und das sind Zeile 684-702
function get_online_berry_driver_version() { exec('curl https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be', function (error, result, stderr){ if (result) { let BerryDriverVersionOnline = result.substring((result.indexOf("version_of_this_script = ") + 24), result.indexOf("version_of_this_script = ") + 27).replace(/\s+/g, ''); createState(NSPanel_Path + "Berry_Driver.onlineVersion"); setIfExists(NSPanel_Path + 'Berry_Driver.onlineVersion', BerryDriverVersionOnline); } }); } function check_version_tft_firmware() { exec('curl -X GET -k \'https://api.github.com/repos/joBr99/nspanel-lovelace-ui/releases/latest\'', function (error, result, stderr){ //GitAPI aufruf für JSON Inhalt von Latest Tasmota Release var NSPanel_JSON = JSON.parse(result) //JSON Resultat in Variable Schreiben var NSPanelTagName = NSPanel_JSON.tag_name //created_at; published_at; name ; draft ; prerelease var NSPanelVersion = NSPanelTagName.replace(/v/i, ""); //Aus Variable überflüssiges "v" filtern und in Release-Variable schreiben createState(NSPanel_Path + "TFT_Firmware.onlineVersion"); setIfExists(NSPanel_Path + 'TFT_Firmware.onlineVersion', NSPanelVersion); }); }
Es gibt aber irgendwie ein Problem mit den Daten die er vom Panel kriegt. Ich habe keine Daten bei Tasmota in der Unterrubrik (Hardware, Uptime, Version). Die Version kriegt wer aber (ist bei mir alles von Freitag also 12.1.0 und auch die Versionen die auf dem Panel laufen.
Grüsse
Das war auch meine ursprüngliche Vermutung, also das es ein Problem in der "function get_tasmota_status0()" gibt. Entweder kann das Skript die IP nicht ermitteln oder irgendetwas hindert das Skript daran http://xxx.xxx.xxx.xxx/cm?cmnd=Status0 auszuführen. Bekommst du Daten (JSON) zurück, wenn du http://xxx.xxx.xxx.xxx/cm?cmnd=Status0 im Browser ausführst?
Kann es sein, dass du Tasmota im http über Benutzer und Passwort gesichert, d.h. Passwort für Web Oberfläche angehakt hast?
Mache mal einen Screenshot von deinem JavaScript-Adapter-Einstellungen
-
Hallo,
Hätte mal ne Frage , wie bekommt man die aktuelle Zeit angezeigt, bin eine Stunde züruck?
Mit freundlichen Gruessen
Welli -
@welli sagte in Sonoff NSPanel:
Hallo,
Hätte mal ne Frage , wie bekommt man die aktuelle Zeit angezeigt, bin eine Stunde züruck?
Mit freundlichen Gruessen
WelliIst die Systemzeit vom ioBroker. Evtl. die Sommerzeit nicht aktiv? Tasmota hat da nichts mit zu tun - ist der Server
-
@armilar
Hallo Armilar,
Die Zeit im Iobroker und in der Tasmota console wie locale zeit , nur der NSpanel zeigt eine Stunde weniger an.
Gruss
Welli -
@welli sagte in Sonoff NSPanel:
@armilar
Hallo Armilar,
Die Zeit im Iobroker und in der Tasmota console wie locale zeit , nur der NSpanel zeigt eine Stunde weniger an.
Gruss
WelliDas Zeit im NSPanel funktioniert wie folgt:
Die Funktion SendTime() wird minütlich aufgerufen
- Die Funktion getHours holt sich die aktuelle Stunde aus dem System
- Die Funktion getMinutes holt sich die aktuelle Minute aus dem System
- Dann wird nur noch mit einer 0 erweitert, wenn die Zahl kleiner 10 ist.
- Zum Schluss wird das Ergebnis als String an das Panel gesendet.
function SendTime(): void { var d = new Date(); var hr = d.getHours().toString(); var min = d.getMinutes().toString(); if (d.getHours() < 10) { hr = "0" + d.getHours().toString(); } if (d.getMinutes() < 10) { min = "0" + d.getMinutes().toString(); } SendToPanel(<Payload>{ payload: "time~" + hr + ":" + min }); }
Spricht also immer noch alles dafür, das die Zeit im System irgendwo nicht korrekt ist.
Teste mal mit Blockly:
-
@welli sagte in Sonoff NSPanel:
@armilar
Hallo Armilar,
Die Zeit im Iobroker und in der Tasmota console wie locale zeit , nur der NSpanel zeigt eine Stunde weniger an.
Gruss
WelliWas ist das denn für ein System bzw. worauf läuft dein ioBroker denn? Gab schon häufiger Probleme mit den Einstellungen der Systemzeit (bei z.B. Promox/VM/Docker Usern).
-
@armilar
Das ganze läuft auf einen Raspberry pi 4. -
@welli
Habe rechts und links probiert ,jetzt ist alles , danke nochmal. -
@armilar Du bist mein persönlicher Held des Tages. Aus irgendeinem Grund ist nach dem flashed. die HTTP-Api ausgeschalten im Tasmota. Das hatte ich vorher schonmal gesehen aber gedacht der macht das eh alles über MQTT. Jetzt wo sie ein ist gibts keine Fehlermeldung mehr und es läuft ganz normal.
Tausend Dank schonmal! -
Neuer Tag neue Frage/Probleme,
Trotz beheben der Fehler und akribischem Prüfen ob es die Datenpunkte gibt bekomme ich die Einstellungen nicht angezeigt.
Das sind die Einstellungen://Subpage 2 von Subpages_2 var NSPanel_Einstellungen: PageEntities = { "type": "cardEntities", "heading": "Screensaver", "useColor": true, "subPage": true, "parent": Service, "items": [ <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_brightnessDay", name: "Brightness Tag", icon: "brightness-5", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 5, maxValue: 10}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_brightnessNight", name: "Brightness Nacht", icon: "brightness-4", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 4}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_hourDay", name: "Stunde Tag", icon: "sun-clock", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_hourNight", name: "Stunde Nacht", icon: "sun-clock-outline", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23} ] };
Das hier die Seite mit den Firmware-Updates:
//Subpage 3 von Subpages_2 var NSPanel_Firmware_Updates: PageEntities = { "type": "cardEntities", "heading": "Firmware-Updates", "useColor": true, "subPage": true, "parent": Service, "items": [ <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.Tasmota_Version", name: "Tasmota Firmware", useColor: true}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.Display_Firmware.currentVersion", name: "TFT-Firmware", useColor: true} ] };```
Und das hier die Pages:
pages: [ Wohnzimmer_Themostat, Fenster_Wozi, Pool, WohnzimmerLicht, // button2Page, Subpages_1, Service ], subPages: [ // Abfall, // WLAN, NSPanel_Infos, NSPanel_Einstellungen, NSPanel_Firmware_Updates ], button1Page: button1Page, button2Page: button2Page };
Die Datenpunkte sind vorhanden aber trotzdem bleiben die Seiten leer. Wie kann das sein?
Nächste Frage:
Wie läuft das mit dem Abfall? Ich hab ical eingerichtet, trashschedule auch, hab jetzt die Werte als Objekte aber was muß ich jetzt für ein Alias anlegen von welchem Typ um das einzubinden? Oder kann man die Events direkt verlinken?
Kann mir da jemand ein Beispiel geben?Außerdem habe ich 3 Rollos eingebunden. Alle Alias sind gleich erstellt worden. Es sind Shelly2.0, sie sind über den Shelly-Adapter eingebunden und bei ACTUAL, CLOSE, OPEN, SET und STOP sind jeweils die Datenpunkte eingegeben.
Im Script steht das hier:var Fenster_Wozi: PageEntities = { "type": "cardEntities", "heading": "Fenster und Türen", "useColor": true, "subPage": false, "parent": undefined, "items": [ <PageItem>{ id: "alias.0.Wohnzimmer_Rechts", onColor: White, name: "Rechts"}, <PageItem>{ id: "alias.0.Wohnzimmer_Klein", onColor: White, name: "Klein"}, <PageItem>{ id: "alias.0.Wohnzimmer_Links", onColor: White, name: "Links"} ] };``` Hier die Objekte: ![iob.png](/assets/uploads/files/1661234818704-iob-resized.png) Trotzdem geht nur das Rechte Rollo komplett und das kleine Rollo geht zwar mit den Hoch und Runter-Tasten aber nicht zu stoppen. Das ist irgendwie sehr sehr komisch. Kann da jemand helfen? Grüsse, DaPeace
-
@dapeace sagte in Sonoff NSPanel:
Neuer Tag neue Frage/Probleme,
Trotz beheben der Fehler und akribischem Prüfen ob es die Datenpunkte gibt bekomme ich die Einstellungen nicht angezeigt.
Das sind die Einstellungen:
Das hier die Seite mit den Firmware-Updates:
Die Datenpunkte sind vorhanden aber trotzdem bleiben die Seiten leer. Wie kann das sein?
das sind Subpage von der Seite Service, ist die Seite vorhanden? Zwieg mal die Einstellungen.
-
@dapeace sagte in Sonoff NSPanel:
Neuer Tag neue Frage/Probleme,
Nächste Frage:
Wie läuft das mit dem Abfall? Ich hab ical eingerichtet, trashschedule auch, hab jetzt die Werte als Objekte aber was muß ich jetzt für ein Alias anlegen von welchem Typ um das einzubinden? Oder kann man die Events direkt verlinken?
Kann mir da jemand ein Beispiel geben?Lies mal den Beitrag, vielleicht passt das. bei mir läuft er so perfekt.
-
Hallo,
ich habe seit Beginn der Arbeit mit dem Panel immer folgende Scriptfehler:10:35:06.177 error javascript.0 (468) script.js.common.NSPanelTS_ts: TypeError: Cannot read properties of undefined (reading 'Version') 10:35:06.177 error javascript.0 (468) at script.js.common.NSPanelTS_ts:1045:55 10:35:06.178 error javascript.0 (468) at step (script.js.common.NSPanelTS_ts:33:23) 10:35:06.178 error javascript.0 (468) at Object.next (script.js.common.NSPanelTS_ts:14:53) 10:35:06.178 error javascript.0 (468) at script.js.common.NSPanelTS_ts:8:71 10:35:06.178 error javascript.0 (468) at __awaiter (script.js.common.NSPanelTS_ts:4:12) 10:35:06.178 error javascript.0 (468) at script.js.common.NSPanelTS_ts:1030:16
Weiß aber nicht was das ist.
Das Zweite ist das Thema "Info Pop Up" aus der Script Doku erkenne ich, dass man da wohl was machen kann. Aber ich finde keine Erklärung "Was und wie".
Und zuletzt bekomme ich das Thema mit den Hardware Buttons nicht hin. Ich habe die Rule in Tasmota hinterlegt und das Relais schaltet nicht mehr. Aber was muss ich wo im Skript machen, damit ich ein Event/Trigger etc auf ein Gerät ausführen kann?
Danke -
@dapeace sagte in Sonoff NSPanel:
Neuer Tag neue Frage/Probleme,
Trotz beheben der Fehler und akribischem Prüfen ob es die Datenpunkte gibt bekomme ich die Einstellungen nicht angezeigt.
Das sind die Einstellungen://Subpage 2 von Subpages_2 var NSPanel_Einstellungen: PageEntities = { "type": "cardEntities", "heading": "Screensaver", "useColor": true, "subPage": true, "parent": Service, "items": [ <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_brightnessDay", name: "Brightness Tag", icon: "brightness-5", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 5, maxValue: 10}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_brightnessNight", name: "Brightness Nacht", icon: "brightness-4", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 4}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_hourDay", name: "Stunde Tag", icon: "sun-clock", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_hourNight", name: "Stunde Nacht", icon: "sun-clock-outline", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 0, maxValue: 23} ] };
Das hier die Seite mit den Firmware-Updates:
//Subpage 3 von Subpages_2 var NSPanel_Firmware_Updates: PageEntities = { "type": "cardEntities", "heading": "Firmware-Updates", "useColor": true, "subPage": true, "parent": Service, "items": [ <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.Tasmota_Version", name: "Tasmota Firmware", useColor: true}, <PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.Display_Firmware.currentVersion", name: "TFT-Firmware", useColor: true} ] };```
Und das hier die Pages:
pages: [ Wohnzimmer_Themostat, Fenster_Wozi, Pool, WohnzimmerLicht, // button2Page, Subpages_1, Service ], subPages: [ // Abfall, // WLAN, NSPanel_Infos, NSPanel_Einstellungen, NSPanel_Firmware_Updates ], button1Page: button1Page, button2Page: button2Page };
Die Datenpunkte sind vorhanden aber trotzdem bleiben die Seiten leer. Wie kann das sein?
Nächste Frage:
Wie läuft das mit dem Abfall? Ich hab ical eingerichtet, trashschedule auch, hab jetzt die Werte als Objekte aber was muß ich jetzt für ein Alias anlegen von welchem Typ um das einzubinden? Oder kann man die Events direkt verlinken?
Kann mir da jemand ein Beispiel geben?Außerdem habe ich 3 Rollos eingebunden. Alle Alias sind gleich erstellt worden. Es sind Shelly2.0, sie sind über den Shelly-Adapter eingebunden und bei ACTUAL, CLOSE, OPEN, SET und STOP sind jeweils die Datenpunkte eingegeben.
Im Script steht das hier:var Fenster_Wozi: PageEntities = { "type": "cardEntities", "heading": "Fenster und Türen", "useColor": true, "subPage": false, "parent": undefined, "items": [ <PageItem>{ id: "alias.0.Wohnzimmer_Rechts", onColor: White, name: "Rechts"}, <PageItem>{ id: "alias.0.Wohnzimmer_Klein", onColor: White, name: "Klein"}, <PageItem>{ id: "alias.0.Wohnzimmer_Links", onColor: White, name: "Links"} ] };``` Hier die Objekte: ![iob.png](/assets/uploads/files/1661234818704-iob-resized.png) Trotzdem geht nur das Rechte Rollo komplett und das kleine Rollo geht zwar mit den Hoch und Runter-Tasten aber nicht zu stoppen. Das ist irgendwie sehr sehr komisch. Kann da jemand helfen? Grüsse, DaPeace
Zunächst einmal versuchst du die Items mit Datenpunkten zu füllen. Das funktioniert nicht, da hier immer ein Alias erwartet wird. Du müsstest jetzt für jeden Datentyp einen Alias mit dem Geräte-Manager erzeugen. Beispiel:
<PageItem>{ id: "0_userdata.0.NSPanelWoZi.1.1.Dimmode_brightnessDay", name: "Brightness Tag", icon: "brightness-5", offColor: MSYellow, onColor: MSYellow, useColor: true, minValue: 5, maxValue: 10},
Du greifst auf "0_userdata.0.NSPanelWoZi.1.1.Dimmode_brightnessDay" zu. Wenn du hier einen Alias "Slider/Schieberegler" verwendest, dann funktioniert es.
In der Subpage2 wären es dann Aliase vom Typ "Info".
Für den Abfall könntest du eine Page bauen mit statischen Werten und einen Alias über die Datenpunkte setzten. In der Regel werden die nächsten Events 1, 2, 3, 4, im ical-Adapter aufgeführt. Ebenfalls vom Typ "Info".
Alternativ hierzu der Post von @TT-Tom.Zu alledem fällt mir auf, dass du einmal 0_userdata.0.NSPanelWoZi.1.1. und einmal 0_userdata.0.NSPanelWoZi.1. verwendest. Hat aber im Grunde keine Bedeutung, weil die Angabe von Datenpunkten schon nicht korrekt ist.
Zu den Rollos, was sind das für Aiase (irgend wie hast du deine Screenshots im Code eingebunden. Sind das Jalousien/Shutter? Ggfs. mal mit ner Fernbedienung das Stop-Signal setzen. Manchmal sind die Aliase zickig bei der ersten Einbindung (oder alternativ mal in den Datenpunkt ein true/false setzen, um den ALIAS aufzuwecken)
-
@vocaris sagte in Sonoff NSPanel:
Hallo,
ich habe seit Beginn der Arbeit mit dem Panel immer folgende Scriptfehler:10:35:06.177 error javascript.0 (468) script.js.common.NSPanelTS_ts: TypeError: Cannot read properties of undefined (reading 'Version') 10:35:06.177 error javascript.0 (468) at script.js.common.NSPanelTS_ts:1045:55 10:35:06.178 error javascript.0 (468) at step (script.js.common.NSPanelTS_ts:33:23) 10:35:06.178 error javascript.0 (468) at Object.next (script.js.common.NSPanelTS_ts:14:53) 10:35:06.178 error javascript.0 (468) at script.js.common.NSPanelTS_ts:8:71 10:35:06.178 error javascript.0 (468) at __awaiter (script.js.common.NSPanelTS_ts:4:12) 10:35:06.178 error javascript.0 (468) at script.js.common.NSPanelTS_ts:1030:16
Weiß aber nicht was das ist.
Das Zweite ist das Thema "Info Pop Up" aus der Script Doku erkenne ich, dass man da wohl was machen kann. Aber ich finde keine Erklärung "Was und wie".
Und zuletzt bekomme ich das Thema mit den Hardware Buttons nicht hin. Ich habe die Rule in Tasmota hinterlegt und das Relais schaltet nicht mehr. Aber was muss ich wo im Skript machen, damit ich ein Event/Trigger etc auf ein Gerät ausführen kann?
Danke- Zu 1) Was befindet sich in den Code-Zeilen 1030 - 1045?
- Zu 2) Die Rule 2 ist dafür da, eine Page (button1Page und oder button2Page) statt des Relais zu benutzen.
- Wenn du etwas über die Relais-Ausgänge schalten willst, dann solltest du die Rule 2 deaktivieren.
- Wenn du nicht möchtest, dass das Relay schaltet und stattdessen den Wert On/Off/Toggle verwenden möchtest, dann Rule 2 deaktivieren, SetOption 114 (Detach switches from relays and send MQTT messages instead) verwenden und über externes Skript "XYZ" die Werte Triggern und verarbeiten.
- Wenn du stattdessen eine Seite öffnen willst und z.B. Lichtszenen steuern willst, dann über die buttonXPages
-
- Zu 1) Was befindet sich in den Code-Zeilen 1030 - 1045?
Anbei die Zeile 1030 - 1045
let mqttInfo2 = config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 6) + "INFO2"; let Tasmota_Info2 = JSON.parse(getState(mqttInfo2).val); return Tasmota_Info2.Info2.IPAddress; } function get_online_tasmota_firmware_version() { exec('curl -X GET -k \'https://api.github.com/repositories/80286288/releases/latest\'', function (error, result, stderr){ //GitAPI aufruf für JSON Inhalt von Latest Tasmota Release var Tasmota_JSON = JSON.parse(result) //JSON Resultat in Variable Schreiben var TasmotaTagName = Tasmota_JSON.tag_name //JSON nach "tag_name" filtern und in Variable schreiben var TasmotaVersionOnline = TasmotaTagName.replace(/v/i, ""); //Aus Variable überflüssiges "v" filtern und in Release-Variable schreiben createState(NSPanel_Path + "Tasmota_Firmware.onlineVersion"); setIfExists(NSPanel_Path + "Tasmota_Firmware.onlineVersion", TasmotaVersionOnline); }); } function get_current_berry_driver_version() {
- Zu 2) Die Rule 2 ist dafür da, eine Page (button1Page und oder button2Page) statt des Relais zu benutzen.
- Wenn du etwas über die Relais-Ausgänge schalten willst, dann solltest du die Rule 2 deaktivieren.
- Wenn du nicht möchtest, dass das Relay schaltet und stattdessen den Wert On/Off/Toggle verwenden möchtest, dann Rule 2 deaktivieren, SetOption 114 (Detach switches from relays and send MQTT messages instead) verwenden und über externes Skript "XYZ" die Werte Triggern und verarbeiten.
- Wenn du stattdessen eine Seite öffnen willst und z.B. Lichtszenen steuern willst, dann über die buttonXPages
OK. Die letzten 2 Dots sagen mir nix. Also ich verstehe nicht was ich machen soll. Das Relais soll nicht schalten, sondern es soll eine Toggle an den ioB gesendet werden, damit ich dort etwas schalte kann.
- Was muss ich im Script ändern
- Was muss ich ggf. in der Tasmota Konsole ändern
- Läuft die Kommunikation via MQTT? Also kann ich nur ein MQTT Gerät schalten und z.B. keine Gerät via SonOff Adapter.
- Ein Beispiel wäre prima
-
@vocaris sagte in Sonoff NSPanel:
- Zu 1) Was befindet sich in den Code-Zeilen 1030 - 1045?
Anbei die Zeile 1030 - 1045
let mqttInfo2 = config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 6) + "INFO2"; let Tasmota_Info2 = JSON.parse(getState(mqttInfo2).val); return Tasmota_Info2.Info2.IPAddress; } function get_online_tasmota_firmware_version() { exec('curl -X GET -k \'https://api.github.com/repositories/80286288/releases/latest\'', function (error, result, stderr){ //GitAPI aufruf für JSON Inhalt von Latest Tasmota Release var Tasmota_JSON = JSON.parse(result) //JSON Resultat in Variable Schreiben var TasmotaTagName = Tasmota_JSON.tag_name //JSON nach "tag_name" filtern und in Variable schreiben var TasmotaVersionOnline = TasmotaTagName.replace(/v/i, ""); //Aus Variable überflüssiges "v" filtern und in Release-Variable schreiben createState(NSPanel_Path + "Tasmota_Firmware.onlineVersion"); setIfExists(NSPanel_Path + "Tasmota_Firmware.onlineVersion", TasmotaVersionOnline); }); } function get_current_berry_driver_version() {
- Zu 2) Die Rule 2 ist dafür da, eine Page (button1Page und oder button2Page) statt des Relais zu benutzen.
- Wenn du etwas über die Relais-Ausgänge schalten willst, dann solltest du die Rule 2 deaktivieren.
- Wenn du nicht möchtest, dass das Relay schaltet und stattdessen den Wert On/Off/Toggle verwenden möchtest, dann Rule 2 deaktivieren, SetOption 114 (Detach switches from relays and send MQTT messages instead) verwenden und über externes Skript "XYZ" die Werte Triggern und verarbeiten.
- Wenn du stattdessen eine Seite öffnen willst und z.B. Lichtszenen steuern willst, dann über die buttonXPages
OK. Die letzten 2 Dots sagen mir nix. Also ich verstehe nicht was ich machen soll. Das Relais soll nicht schalten, sondern es soll eine Toggle an den ioB gesendet werden, damit ich dort etwas schalte kann.
- Was muss ich im Script ändern
- Was muss ich ggf. in der Tasmota Konsole ändern
- Läuft die Kommunikation via MQTT? Also kann ich nur ein MQTT Gerät schalten und z.B. keine Gerät via SonOff Adapter.
- Ein Beispiel wäre prima
1.) Darf dein ioBroker-Server nicht ins Internet oder ist es komplett abgeschottet oder kann kein curl ausführen (z.B. Windows als Server)? Das würde erklären, warum eine Versionsnummer nicht ermittelt werden kann, bzw. mit "undefined" zurückkommt..
2.) Das PopUp kannst du über folgende Datenpunkte steuern:
Einfach etwas reinschreiben. Ist komplett entkoppelt vom sonstigen Skript.Die meisten Punkte sind selbsterklärend:
- Heading = Überschrift
- Text = Nachricht
- Button 1 und 2 Text. Kann auch weggelassen werden (""), dann ist kein Button da
- über popupNotifyAction holst du dir das Ergebnis der Dialog-Buttons ab Button1 = false/Button2 = true
Oder in den Screensaver mit folgenden Datenpunkten:
3.)
- Du dekaktivierst die Rule 2
- Du verwendest im Tasmota SetOption114. Dann wird der Zustand des Buttons via MQTT übertragen und das Relay ist abgeschaltet
- Jetzt schreibst du dir z.B. ein Blockly und setzt einen Trigger auf den "Power"-State im mqtt.0 und schaltest damit was immer du willst
Das TS-Skript kann mit diesen Einstellungen nichts mehr mit dem Button anfangen, daher auch nichts zu "was soll ich im Skript machen" - Antwort nichts... Sieh es wie einen Lichtschalter an einem Shelly --> An/Aus
Weitere Infos zu Tasmota hier:
https://tasmota.github.io/docs/Buttons-and-Switches/ -
@armilar Ok. Versteh zwar nicht warum man die Datenpunkte die das Script selbst erstellt nochmal mit nem Alias hinterlegen muß. Das wäre für die Konfiguration viel besser wenn das gleich out of the box geht. Da würde man sich bei der Erstellung nicht wundern warum nicht mal die Infos angezeigt werden.
Hab das aber mal angelegt und werd das dann gleich mal ausprobieren.Die Jalousien sind einfache Shelly 2.0. Ich werd mal die Jalousien über die Weboberfläche fahren. Im nachhinein könnte es wirklich sein das er den aktuellen State nicht kennt. Mir kam gestern schon vor das plötzlich eine funktioniert hat die vorher nicht ging.
Einstellung vom Alias häng ich nochmal an.
Abfallkalender hab ich jetzt mal mit dem Trashschedule angelegt und da dann Alias draufgepackt. Seh ich dann auch zuhause ob das funzt oder nicht. Das Script hat mir keine Datenpunkte angelegt obwohl die Basisdaten vorhanden sind und ich das auf meine Struktur angepasst hab.