NEWS
JavaScript für Sayit Adapter
-
Hallo zusammen,
ich bräuchte mal Hilfe bei JavaScript (Wenn das Powershell wäre, hätte ich keine Probleme).
Also, ich verwende den Sayit Adapter in Verbindung mit dem Alarm Adapter. Das funktioniert sehr gut.
Jetzt habe ich versucht mal ein JavaScript zu schreiben, das dann losplappert, wenn die Garage auf oder zu geht. Leider kommt da kein Ton raus. Auch der Datenpunkt "sayit.0.tts.text" wird nicht befeuert. Mit Blockly hatte ich auch kein Erfolg.
Das Anfängerscript:var idSayIt = "sayit.0.tts.text"; var idGarage = "0_userdata.0.Haus.Garantor"; on({id: "0_userdata.0.Haus.Garantor" , change: "any"}, function (obj) { var offen = "0"; var zu = "1"; if( "offen" ){ setState (idSayIt, "100;Achtung Warnung! Garagentor ist offen " /*media.tts.text*/); } else if ( "zu" ){ setState (idSayIt, "100;Achtung Warnung! Garagentor ist zu " /*media.tts.text*/); } });Da kennt sich doch bestimmt jemand aus. Für Hilfe wäre ich dankbar.
Grüße -
Hallo zusammen,
ich bräuchte mal Hilfe bei JavaScript (Wenn das Powershell wäre, hätte ich keine Probleme).
Also, ich verwende den Sayit Adapter in Verbindung mit dem Alarm Adapter. Das funktioniert sehr gut.
Jetzt habe ich versucht mal ein JavaScript zu schreiben, das dann losplappert, wenn die Garage auf oder zu geht. Leider kommt da kein Ton raus. Auch der Datenpunkt "sayit.0.tts.text" wird nicht befeuert. Mit Blockly hatte ich auch kein Erfolg.
Das Anfängerscript:var idSayIt = "sayit.0.tts.text"; var idGarage = "0_userdata.0.Haus.Garantor"; on({id: "0_userdata.0.Haus.Garantor" , change: "any"}, function (obj) { var offen = "0"; var zu = "1"; if( "offen" ){ setState (idSayIt, "100;Achtung Warnung! Garagentor ist offen " /*media.tts.text*/); } else if ( "zu" ){ setState (idSayIt, "100;Achtung Warnung! Garagentor ist zu " /*media.tts.text*/); } });Da kennt sich doch bestimmt jemand aus. Für Hilfe wäre ich dankbar.
Grüße@maxtor62
Die Garagentor-ID lautet tatsächlich "0_userdata.0.Haus.Garantor"?
Dann sollte es so funktionieren:const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garantor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + dp.state.val ? "zu" : "offen"); }); -
@maxtor62
Die Garagentor-ID lautet tatsächlich "0_userdata.0.Haus.Garantor"?
Dann sollte es so funktionieren:const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garantor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + dp.state.val ? "zu" : "offen"); }); -
Hey, erst mal vielen Dank für Deine Hilfe. Natürlich hatte ich da einen Tippfehler drin.
Na endlich quatscht das Teil mal mit mir, super. Jetzt kommt bei state 1 oder 0 immer "zu"
-
@maxtor62 sagte: Jetzt kommt bei state 1 oder 0 immer "zu"
Sind das Zahlen oder Strings?
Skript zeigen!das ist der Datenpunkt, der entweder 1 oder 0 ist.
{ "common": { "name": "Garagentor", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": "" }, "type": "state", "native": {}, "_id": "0_userdata.0.Haus.Garagentor", "acl": { "object": 1636, "state": 1636, "owner": "system.user.stefan", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1693219286201 }und das ist das Script
const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garagentor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + dp.state.val ? "Garagentor ist zu" : "Garagentor ist offen"); });Ich hab mal Testweise das Script für eien anderen Datenpunkt genommen. Der ist "true oder "false"
const idSayIt = "sayit.0.tts.text"; const idFenster= "zigbee.0.00158d0008a6e44c.opened"; on(idFenster, function (dp) { // true = "offen", false = "zu" setState (idSayIt, "100;Achtung Warnung! Küchenfenster ist " + dp.state.val ? "Küchenfenster ist zu" : "Küchenfenster ist offen"); });Kommt auch immer "Das Küchenfenster ist zu"
-
@maxtor62 sagte: Jetzt kommt bei state 1 oder 0 immer "zu"
Sind das Zahlen oder Strings?
Skript zeigen!@paul53
jetzt funktioniert es. Danke Dir.const idSayIt = "sayit.0.tts.text"; const idFenster= "zigbee.0.00158d0008a6e44c.opened"; on(idFenster, function (dp) { // true = "offen", false = "zu" setState (idSayIt, + dp.state.val ? "Küchenfenster ist offen" : "Küchenfenster ist zu"); }); -
das ist der Datenpunkt, der entweder 1 oder 0 ist.
{ "common": { "name": "Garagentor", "desc": "Manuell erzeugt", "role": "value", "type": "number", "read": true, "write": true, "def": "" }, "type": "state", "native": {}, "_id": "0_userdata.0.Haus.Garagentor", "acl": { "object": 1636, "state": 1636, "owner": "system.user.stefan", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1693219286201 }und das ist das Script
const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garagentor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + dp.state.val ? "Garagentor ist zu" : "Garagentor ist offen"); });Ich hab mal Testweise das Script für eien anderen Datenpunkt genommen. Der ist "true oder "false"
const idSayIt = "sayit.0.tts.text"; const idFenster= "zigbee.0.00158d0008a6e44c.opened"; on(idFenster, function (dp) { // true = "offen", false = "zu" setState (idSayIt, "100;Achtung Warnung! Küchenfenster ist " + dp.state.val ? "Küchenfenster ist zu" : "Küchenfenster ist offen"); });Kommt auch immer "Das Küchenfenster ist zu"
@maxtor62 sagte: Kommt auch immer "Das Küchenfenster ist zu"
Hast recht. Setze eine Klammer:
const idSayIt = "sayit.0.tts.text"; const idGarage = "0_userdata.0.Haus.Garagentor"; on(idGarage, function (dp) { // 0 = "offen", 1 = "zu" setState (idSayIt, "100;Achtung Warnung! Garagentor ist " + (dp.state.val ? "zu" : "offen")); });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden