NEWS
(Gelöst) Bitte um Hilfe bei der Fehlersuche
-
Hallo,
Ich benötige Hilfe bei der Fehlersuche in meinem JavaScript.
Ich möchte mit dem Script die Betriebszustände meines Rasenmähers, die ich im Zahlencode bekomme, in Klartext in ein Objekt schreiben.
Leider bekomme ich es nicht hin und benötige dabei Hilfe.
Im Objekt "sonoff.0.Automower.State" bekomme ich die Betriebszustände im Zahlencode herein.
Ich möchte dann in die Variable"javascript.0.scriptEnabled.common.Automower-State-Value" die Zustände in Klartext für die VIS bekommen.
Leider funktioniert es so nicht und komme nicht dahinter was ich falsch mache.var State_akt; on({id: "sonoff.0.Automower.State", change:"ne"}, function (obj) { State_akt = getState( "sonoff.0.Automower.State").val; if (State_akt == 0) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mode Manual quittiert', true); } else if (State_akt == 1) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mode Auto quittiert', true); } else if (State_akt == 3) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mode HOME quittiert', true); } else if (State_akt == 6) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Radmotor blockiert', true); } else if (State_akt == 12) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Kein Schleifensignal', true); } else if (State_akt == 16) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Außerhalb', true); } else if (State_akt == 18) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Niedrige Batteriespannung', true); } else if (State_akt == 26) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Ladestation blockiert', true); } else if (State_akt == 34) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mäher gehoben', true); } else if (State_akt == 52) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Kein Kontakt zur LS', true); } else if (State_akt == 54) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Pin abgelaufen', true); } else if (State_akt == 1000) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'aus LS fahren', true); } else if (State_akt == 1002) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mähen', true); } else if (State_akt == 1006) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mähwerk start', true); } else if (State_akt == 1008) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Mähwerk gestartet', true); } else if (State_akt == 1012) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Signal starte Mähwerk', true); } else if (State_akt == 1014) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Laden', true); } else if (State_akt == 1016) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'in LS wartend', true); } else if (State_akt == 1024) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'aus LS einfahren', true); } else if (State_akt == 1036) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Viereckmodus', true); } else if (State_akt == 1038) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Festgefahren', true); } else if (State_akt == 1040) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Kollision', true); } else if (State_akt == 1042) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Suchen', true); } else if (State_akt == 1044) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Stop', true); } else if (State_akt == 1048) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Andocken', true); } else if (State_akt == 1050) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'aus LS ausfahren', true); } else if (State_akt == 1052) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Fehler', true); } else if (State_akt == 1056) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Wartet Man./Home', true); } else if (State_akt == 1058) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Begrenzung folgen', true); } else if (State_akt == 1060) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'N-Signal gefunden', true); } else if (State_akt == 1062) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Festgefahren', true); } else if (State_akt == 1064) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Suchen', true); } else if (State_akt == 1066) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Fernverfolgungsproblem', true); } else if (State_akt == 1070) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Suchschleife folgen', true); } else if (State_akt == 1072) { setState("javascript.0.scriptEnabled.common.Automower-State-Value", 'Schleife folgen', true); } });
-
@gerald123 sagte: "javascript.0.scriptEnabled.common.Automower-State-Value"
Das enthält hoffentlich nicht den Namen des Scripts? Keine eigenen Datenpunkte unter "javascript.0.scriptEnabled" verwenden!!
Erstelle besser einen Datenpunkt "0_userdata.0.Automower.State" oder so ähnlich. Um Ressourcen zu schonen, verwende eine Variable für den Text und schreibe die Variable zum Schluss in den Datenpunkt.on("sonoff.0.Automower.State", function(dp) { let txt = 'nicht definiert'; if (dp.state.val == 0) txt = 'Mode Manual quittiert'; else if (dp.state.val == 1) txt = 'Mode Auto quittiert'; // usw. setState('0_userdata.0.Automower.State', txt, true); });
-
@paul53 Super danke, so funktioniert es jetzt.