NEWS
Alle 10min Meldung im Telegram "Bitte wähle einen Button" aus Script
-
Ein Hallo@All ,
ich hab jetzt schon vieles in meinem IoBroker probiert und erstellt bin eigentlich soweit ganz Glücklich das alles soweit tut.
Nur eines was mich etwas nervt ist das ich in Telegramm alle 10min Meldung bekomme "Wähle Button aus", ich habe ein Script mit meinen Buttons belegt und über Text To Command wird das alles gesteuert.
So wie ich denke aktualisiert der IoBroker alle 10min die Scripte und ich erhalte deswegen diese Meldung.
Kann man diese Zeit irgendwo ändern oder Ausschalten und ggf nur für einzelne Scripte ???
Hab leider nix gefundenDanke für die Infos und Hilfe schon mal
-
Mir wäre jetzt nicht bekannt dass IoBroker generell Scripte zyklisch neu startet. Bei mir tritt dieses Phänomen auf wenn bspw. der Javascript-Adapter neu gestartet wird.
Dein Button-Script wird das von mehreren anderen Scripten aufgerufen? Liegt es im global Order?
Es ist ein bisschen wie Glaskugel-lesen Aber wenn du noch paar mehr Infos hast würde das helfen. -
Hallo,
der Java-Adapter startet andauernd neu. Das ist bei mir auch zur Zeit der Fall. Da ist sicherlich ein Fehler im Adapter.Gruß Steffen
-
@Steffengr sagte in Alle 10min Meldung im Telegram "Bitte wähle einen Button" aus Script:
der Java-Adapter startet andauernd neu. Das ist bei mir auch zur Zeit der Fall. Da ist sicherlich ein Fehler im Adapter.
mja das kan sein, oder du hast ein script mit Fehlern drinnen wodurch er Crash ?
- welche JS-Adapter version ?
- warum schmiert er ab (was sagt das log in dem moment)
-
Das mit dem fehlerhaften Script wäre auch meine Vermutung.
Hast du mal versucht alle deine Scripte auf Pause zu stellen und dann zu schauen ob der Adapter immernoch neu startet?
Wenn dem nicht so ist, könntest du der Reihe nach immer wieder eines dazu schalten und sehen ab wann er wieder das spinnen anfängt. -
Hallo,
danke schon mal für die Antworten
Hab mir in Log mal angeschaut da kommen Fehler. Scheinbar liegt es an den Tado Scripts.
Bin leider nicht so der Profi such mir das alles immer hier im Forum zusammen oder Google.Häng mal screenshots dran
Scripts liegen im Common
Werd mal Heizung Scripts abschalten und schau mal weiter ob dann eure Hilfe schon fruchtet
-
@Audidriver sagte in Alle 10min Meldung im Telegram "Bitte wähle einen Button" aus Script:
Hallo,
danke schon mal für die Antworten
Hab mir in Log mal angeschaut da kommen Fehler. Scheinbar liegt es an den Tado Scripts.
Bin leider nicht so der Profi such mir das alles immer hier im Forum zusammen oder Google.Häng mal screenshots dran
Scripts liegen im Common
Werd mal Heizung Scripts abschalten und schau mal weiter ob dann eure Hilfe schon fruchtet
So würde ich auch anfangen
-
@Peoples Tado Skripte sind aus und siehe da es ist Ruhe, jetzt muss ich mal kucken warum die Tado Scripte diesen Fehler verursachen.
Leide gibt es ja keinen Adapter für IoBroker um Tado zu steuern .
Vielen Dank schon mal
-
@Audidriver sagte in Alle 10min Meldung im Telegram "Bitte wähle einen Button" aus Script:
... jetzt muss ich mal kucken warum die Tado Scripte diesen Fehler verursachen.
Steht im Log..
Cannot read property 'celsius' of null..Er versucht also aus irgend einem Objekt einen Wert mit dem namen celsius auszulesen,.. Aber dieses Objekt gibt es nicht..
Deswegen der Fehler.Du musst also zuerst prüfen ob das Objekt überhaupt existiert bevor du versuchst einen Wert daraus auszulesen.
Gruß
-
@BuZZy Ok danke, hab ich mir kopiert mit meinen Daten gefüttert. Mit diesen Programmierungen bin ich leider gar nicht Fit.
Evtl mal etwas im Netz suchen wenn ich Zeit hab
Wichtig ist erst mal das nicht alle 10min nee Nachricht in Telegram kommt.
-
Was verwendest du denn für Hardware die du abfragen möchtest?
-
@Audidriver dafür musst du mal den Code zeigen..
-
Ich habe Tado Heizungsregler an 4 Heizkörper.
Hier mal der Code :
'{"time":{"start":"00:00","end":"23:59","mode":"hours","interval":1},"period":{"days":1}}'/* -- do not edit following lines - START --
{
"expert": true,
"debug": false,
"verbose": false
}
-- do not edit previous lines - END --*/
// tado Script für ioBroker
// Version 0.1
//
// Anleitung:
// 1. Pro Thermostat muss ein Script erstellt und individuell konfiguriert werden!
// 2. Eindeutigen Raumname im Konfig-Bereich des Scripts für das Thermostat angeben. Bei mehreren Thermostaten in einem Raum bitte unterschiedliche Raumnamen verwenden.
// 3. Über folgende URL (Nutzername und Passwort in der URL angeben) per WEbbrowser die HomeID ermitteln und in dem Konfigurations-Teil des Scripts eintragen:
// https://my.tado.com/api/v2/me?username=USERNAME&password=PASSWORT
// 4. Über folgende URL (HOME ID, Nutzername und Passwort in der URL angeben) per Webbrowser die ZoneID ermitteln und in dem Konfigurations-Teil des Scripts eintragen:
// https://my.tado.com/api/v2/homes/HOMEID/zones/2/state?username=USERNAME&password=PASSWORT
// - Die "2" im Link steht für ZoneID 2, in meinem Fall war das das Thermostat im Wohnzimmer
// - am besten unterschiedliche Temperaturen in den Räumen per App einstellen und dann verschiedene Zahlen im Link durchprobieren
//
//
// Quellen die bei der Scripterstellung geholfen haben:
// http://wirres.net/article/articleview/10326/1/6/
// http://blog.scphillips.com/posts/2017/01/the-tado-api-v2/schedule("*/10 * * * *", function () { // Zeiteinstellung: Script aktualisiert alle 10 Min die Werte. Bei geringeren Abfrageintervallen kann es zu Verbindungsabbrüchen kommen und alle Geräte müssen neugestartet werden!
//[b]Konfiguration:[/b] var Raumname = 'Badezimmer'; // Der hier angegebene Raumname dient zur Benennung des erzeugten Channel Objekts in ioBroker var ZoneID = "****************"; // Zonennummer des Raums (muss über API URL ermittelt werden, siehe Anleitung) var HomeID = "***************"; // HomeID (muss über API URL ermittelt werden, siehe Anleitung) var Username = "*************; // tado Username (E-Mail Adresse) var Password = "************"; // tado Passwort (Sonderzeichen müssen entsprechend umgewandelt werden, z.B. # = %23) // SCRIPTBEGINN - AB HIER NICHTS VERÄNDERN ! var url = "https://my.tado.com/api/v2/homes/"+HomeID+"/zones/"+ZoneID+"/state?username="+Username+"&password="+Password; // API URL //läd die Json herunter var request = require("request"); request(url, function (error, response, body) { //parst die Json var json = JSON.parse(body); //Datenpunkterstellung: createState("tado." + Raumname + ".temperature", 0, false, {type: "number", name: "temperature", desc: "Eingestellte Temperatur", role: "value.temperature", unit: "°C", read: true, write: true}); createState("tado." + Raumname + ".power", "OFF", false, {type: "string", name: "power", desc: "Aufheizen", read: true, write: true}); createState("tado." + Raumname + ".inside_temperature", 0, false, {type: "number", name: "inside_temperature", desc: "Gemessene (Raum-)Temperatur", role: "value.temperature", unit: "°C", read: true, write: true}); createState("tado." + Raumname + ".humidity", 0, false, {type: "number", name: "humidity", desc: "Luftfeuchtigkeit", role: "value.humidity", unit: "%", min: 0, max: 100, read: true, write: true}); createState("tado." + Raumname + ".heatingpower", 0, false, {type: "number", name: "heatingpower", desc: "Heizkraft", unit: "%", min: 0, max: 100, read: true, write: true}); //Datenabfrage: //Temperatur: setState("javascript.0.tado."+Raumname+".temperature", json.setting.temperature.celsius); log('tado Temperatur '+Raumname+': ' + json.setting.temperature.celsius); //Power: setState("javascript.0.tado."+Raumname+".power", json.setting.power); log('tado Power-Setting '+Raumname+': ' + json.setting.power); //Humidity: setState("javascript.0.tado."+Raumname+".humidity", json.sensorDataPoints.humidity.percentage); log('tado Humidity '+Raumname+': ' + json.sensorDataPoints.humidity.percentage); //Inside Temperature: setState("javascript.0.tado."+Raumname+".inside_temperature", json.sensorDataPoints.insideTemperature.celsius); log('tado Inside Temperature '+Raumname+': ' + json.sensorDataPoints.insideTemperature.celsius); //Heating Power: setState("javascript.0.tado."+Raumname+".heatingpower", json.activityDataPoints.heatingPower.percentage); log('tado Heating Power '+Raumname+': ' + json.activityDataPoints.heatingPower.percentage); });
});