NEWS
Akuu zustand meldung
-
Hallo ich mochte von meinem Tablett über tasker und pushbullet den Akkuzustand an io Broker übermitteln
Habe folgendes Script aber es st mir die variable nicht
createState('tablett.zustand','0'); on("pushbullet.0.push.payload"/*Content of Push*/, function() { var zustand = getState("pushbullet.0.push.payload"/*Content of Push*/).val; log ( zustand); if ( getState("pushbullet.0.push.payload"/*Content of Push*/).val=== 100); setState ('javascript.0.tablett.zustand', true ); log (zustand + "ein"); if ( getState("pushbullet.0.push.payload"/*Content of Push*/).val=== 0); setState ('javascript.0.tablett.zustand', false ); log ( zustand + "aus"); });
im log
kommt
javascript.0 2015-10-24 16:38:18 info javascript.0 script.js._pushbulllet_auswerten: 0aus
javascript.0 2015-10-24 16:38:18 info javascript.0 script.js._pushbulllet_auswerten: 0ein
javascript.0 2015-10-24 16:38:18 info javascript.0 script.js._pushbulllet_auswerten: 0
wo ist mein Fehler ?
Gruß Stephan
-
Hallo Stephan
versuch mal so:
createState('tablett.zustand','0'); on("pushbullet.0.push.payload"/*Content of Push*/, function(data) { var zustand = data.newState.val, einaus = ""; if (zustand === 100 || zustand == '100') { // kommt als Zahl oder als String setState ('javascript.0.tablett.zustand', true ); einaus = 'ein'; } else if (zustand === 0 || zustand == '0') { setState ('javascript.0.tablett.zustand', false ); einaus = 'aus'; } log('Tablet-Zustand: ' + zustand + ' / ' + einaus); });
Gruß,
Pix
-
Hallo Pix
das Script funktioniert Danke
ich habe dazu einige Fragen um Javascript zu verstehen :?:
1. manche Einträge sin mit ' ' und andere mit " " eingebunden macht das einen Unterschied ?
2. und die Klammern ( ) und { } haben die unterschiedliche aufgaben oder dienen die zum besseren übersicht was zu was gehört
3 bei zustand steht einmal === 100 und einmal =='100' muss das so sein
und 4. ein String ist doch einen Zeichenkette kann eine Zahl auch ein String sein?
Entschuldige für die Fragen aber ich möchte auch verstehen was ich mache und nicht nur
Zeilen aus verschieden scripten kopieren und hoffen das es geht.
Vielen Dank im Voraus
Stephan
-
Hallo stephan,
um Javascript zu lernen, helfen solche Seiten wie
http://www.w3schools.com/js/default.asp oder http://www.mediaevent.de. Dort werden auch die einzelnen Befehle gut erklärt.
1. manche Einträge sin mit ' ' und andere mit " " eingebunden macht das einen Unterschied ? `
Kein Unterschied. Nur mischen geht nicht.2. und die Klammern ( ) und { } haben die unterschiedliche aufgaben oder dienen die zum besseren übersicht was zu was gehört `
Ja, die haben unterschiedliche Aufgaben. Die Maschine braucht keine Übersichtlichkeit, die brauchen nur wir Menschen :lol:{ } wird zum Beispiel nach If Abfragen verwendet. Alles,w as in den Klammern steht, soll ausgeführt werden.
3 bei zustand steht einmal === 100 und einmal =='100' muss das so sein `
Ja, das soll so sein.Wenn bekannt ist, dass der Zustand eine Zahl ist, der Typ also bekannt ist, dann ===
Wenn der Zustand ein String ist, dann 'Zustand'
Wenn man nicht sicher ist, dann beide und mit einem ODER verbunden. Das Zeichen für oder ist ||
4. ein String ist doch einen Zeichenkette kann eine Zahl auch ein String sein? `
String ist das englische Wort für Zeichenkette. Eine Zahl kann in einen String gewandelt werden. Zum Beispiel für die Sprachausgabe. Sayit würde zu "100.00" "hundertpunktnullnull" sagen. Das wandelt man um lässt die Dezimalstellen weg oder ersetzt Punkt durch Komma.Andersherum kann man aus einem String eine Zahl machen. Zum Beispiel kann man in einem String eine Zahl suchen (zum Beispiel Straße + Hausnummer). Die Befehle stehen alle auf den o.g. Seiten.
Ich bin anfangs oft über die ABkürzungen im Code gestolpert. Ein Beispiel:
if (zustand) { log('Zustand ist wahr');} if (!zustand) { log('Zustand ist ungleich wahr');
ist die Kurzform von
if (zustand == true) { log('Zustand ist wahr''); if (zustand != true) { log('Zustand ist ungleich wahr'');
Auch dazu findest du Infos unter "Kurzschreibweise" "Javascript" im Netz.
Achte im Skripteditor des Javascript-Adapters immer auf die Ausrufezeichen und Fehlermeldungen am linken Rand. Sie geben dir einen Hinweis, wonach du suchen musst (mit dem Mauszeiger drüber fahren).
Gruß
Pix