NEWS
[gelöst] Variablen erzeugen und Pushbullet
-
@jhuebner1 sagte:
1.) Wie erzeuge ich Variablen im iobroker?
Mit der folgenden Deklaration hast Du die Variable mit dem Bezeichner level erzeugt:
var level = getState(idTemp).val;
Sie wird mit dem Wert des Datenpunktes mit der ID "mihome.0.devices.weather_v1_158d0003217238.temperature" initialisiert.
Datenpunkte erzeugt man mit createState(id, init, common):@jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:
2 Nachkommastellen an, ich will aber nur 1 zeigen.
var level = Math.round(getState(idTemp).val * 10) / 10; // Runden auf 1 Nachkommastelle
@jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:
wie kann ich denn im Text einen Wert/Inhalt der Variablen mitsenden?
Durch Verkettung von Zeichenketten.
"title": 'Die DG-Sauna ist ready2 ' + level,
-
@paul53
Klappt jetzt, top!
DANKE!!!!! -
Und wenn ich noch mal unverschämt nachfragen darf:
Wie erstelle ich denn ein Script, mit dem ich mir den Text des DWD als Pushbullet schicken lassne kann?
Und zwar ja nur dann, wenn der DWD was meldet.Ich dachte an sowas, aber das klappt nicht:
//const DWD = 'dwd.0.warning.text'; //var DWD_text = DWD; on({id: 'dwd.0.warning.description', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; sendTo("pushbullet.0", "send", { "title": dwd.0.warning.description "type": 'note1234', "receiver": 'meine ID' }); });
-
"title": value,
-
@paul53
Noch ne doofe Frage zum Runden:
Funktion / Formel hab ich verstanden.Aber wie bekomme ich das denn als eigene / Neue Variable in VIS?
Damit im Script arbeiten ok, aber ich will es ja im Editor haben, sozusagen als eigene Variable (statt mihome.0.devices.weather_v1_158d0003217238.temperature)das hier klappt nicht:
//Temperatur Büro const idTemp1 = 'mihome.0.devices.weather_v1_158d0003217238.temperature'; var temp_buero = Math.round(getState(idTemp1).val * 10) / 10; // Runden auf 1 Nachkommastelle
Oder muss ich das über eigenen Datenpunkte lösen
createState("Eigene_Datenpunkte.Temperatur.Buero", { name: 'Temperatur Buero', role: 'switch', type: 'boolean', read: true, write: true, def: true, });
Und das dann in eine Schleife packen, die alle 5 min läuft?
-
@jhuebner1 sagte:
eigene / Neue Variable in VIS?
//Temperatur Büro const idTemp1 = 'mihome.0.devices.weather_v1_158d0003217238.temperature'; var temp_buero = Math.round(getState(idTemp1).val * 10) / 10; // Runden auf 1 Nachkommastelle const idVis = 'Eigene_Datenpunkte.Temperatur.Buero'; createState(idVis, temp_buero, {type: 'number', name: 'Temperatur Buero', unit: '°C', role: 'value'}); // neuen Datenpunkt erzeugen on(idTemp1, function(dp) { // triggert bei Wertänderung setState(idVis, Math.round(dp.state.val * 10) / 10, true); });
-
@jhuebner1 sagte:
Oder muss ich das über eigenen Datenpunkte lösen
Ja, aber nicht mit
role: 'switch', type: 'boolean', write: true, def: true,
-
@paul53
Das klappt, ich werd bekloppt!
DANKE! -
@paul53
Ich brauch jetzt nochmal Hilfe....
Und zwar will ich mir im VIS 2 verschiedene Icons anzeigen lassen, wenn das Fenster offen und zu ist.
Das geht ganz gut über das Basic Image8, allerdings zeigt der die beiden Grafiken nur bei den Bedingungen 0 und 1 an.Vom Fenstersensor kommt aber true und false zurück....
Also brauche ich entweder ein anderes Widget (was true und false kann) oder ich brauch ein JS, was mir aus dem true ->1 und aus dem false -> 0 macht.
Habe es analog zu den Temperaturen mal so probiert, aber das klappt gar nicht...
//Fenster Küche2 const idFenster2 = 'mihome.0.devices.magnet_158d000325fa4c.state'; var fenster_kueche2 = idFenster2.state const idVis12 = 'Eigene_Datenpunkte.Fenster.Kueche'; createState(idVis12, fenster_kueche2, {type: 'number', name: 'Fenster Küche', role: 'value'}); // neuen Datenpunkt erzeugen on(idFenster2, function(dp) { // triggert bei Wertänderung if (fenster_kueche2 = true) Set (fenster_kueche2 = 1) else Set (fenster_kueche2 = 0) setState(idVis12, true); });
-
//Fenster Küche2 const idFenster2 = 'mihome.0.devices.magnet_158d000325fa4c.state'; const idVis12 = 'Eigene_Datenpunkte.Fenster.Kueche'; createState(idVis12, 0, {type: 'number', name: 'Fenster Küche', role: 'value'}); // neuen Datenpunkt erzeugen on(idFenster2, function(dp) { // triggert bei Wertänderung var fenster_kueche2 = 0; if(dp.state.val) fenster_kueche2 = 1; setState(idVis12, fenster_kueche2, true); });