NEWS
[Gelöst] Logicwert nach State ändern
-
Hallo,
sorry für die vielleicht Blöden Anfängerfragen.
Ich habe eien Datenpunkt RoT-Weiß als Logicwert erstelltWie kann ich den Logicwert Datenpunkt nach einem State ändern.
Ich mochte das nur wenn im State "Rot" kommt er den Datenpunkt Logicwert auf True ändert.
Dann aber das true behält egal was kommt.
Erste wenn State "Weis" kommt soll er den Logicwert auf false ändern.
Dieses soll ebenfalls bleiben bis wieder "Rot" kommt und somit wieder auf true schaltet.Alles andere soll ignoriert werden.
Danke. -
@Lordcyber sagte:
Ich mochte das nur wenn im State "Rot" kommt er den Datenpunkt Logicwert auf True ändert.
Dann aber das true behält egal was kommt.
Erste wenn State "Weis" kommt soll er den Logicwert auf false ändern.Was ist das für ein State mit "Rot" und "Weiss" ?
if(farbe == "Rot") setState(idLogic, true); else if(farbe == "Weiss") setState(idLogic, false);
-
Hallo,
das war nur als Beispiel.
In Realität geht es darum:Ich habe einen 433 Tür Sensor den der den State 12345 ausgibt wenn die Türe geöffnet wird.
Und beim schlissen den State 12347
Dazwischen empfängt er aber noch andere States.
Daher habe ich einen Datenpunkt "Türe auf " erstellt denn er mir eben false/true ändern soll.Das ich diesen Datenpunkt weiter verarbeiten kann.
Vielen Dank ich werde es gleich mal Probieren.
-
@paul53 said in Logicwert nach State ändern:
if(farbe == "Rot") setState(idLogic, true);
Also Wäre es dann:
if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B766E") setState('Tüeren.0.Balkontüere.Status', true); else if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B7667") setState('Tüeren.0.Balkontüere.Status', false);
Hab es eben abgeändert das ist so wie es sein sollte.
Aber er ändert mir den State nicht um. -
@Lordcyber sagte in Logicwert nach State ändern:
@paul53 said in Logicwert nach State ändern:
if(farbe == "Rot") setState(idLogic, true);
Also Wäre es dann:
if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B766E") setState('Tüeren.0.Balkontüere.Status', true); else if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B7667") setState('Tüeren.0.Balkontüere.Status', false);
Hab es eben abgeändert das ist so wie es sein sollte.
Aber er ändert mir den State nicht um.Auf die Gefahr hin das ich da was offensichtliches schreibe - dieses if muss noch in ein ‚on‘ gepackt werden:
on( { id:’sonoff.0.Sonoff_Bridge.RfReceived_Data’, change: ‘ne’}, function() { —-hier das if });
So sollte er beim erkennen des Signals den Status anpassen.
A.
-
@Asgothian said in Logicwert nach State ändern:
@Lordcyber sagte in Logicwert nach State ändern:
@paul53 said in Logicwert nach State ändern:
if(farbe == "Rot") setState(idLogic, true);
Also Wäre es dann:
if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B766E") setState('Tüeren.0.Balkontüere.Status', true); else if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B7667") setState('Tüeren.0.Balkontüere.Status', false);
Hab es eben abgeändert das ist so wie es sein sollte.
Aber er ändert mir den State nicht um.Auf die Gefahr hin das ich da was offensichtliches schreibe - dieses if muss noch in ein ‚on‘ gepackt werden:
on( { id:’sonoff.0.Sonoff_Bridge.RfReceived_Data’, change: ‘ne’}, function() { —-hier das if });
So sollte er beim erkennen des Signals den Status anpassen.
A.
Hallo,
danke, ja jetzt wo de es sagst. Stimmt hat gefehlt.
Jetzt Springt er zwar auf true aber nicht zurück auf False. Wenn der Wert kommt.So habe ich es jetzt:
on( { id:'sonoff.0.Sonoff_Bridge.RfReceived_Data', change: 'ne'}, function() { if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B766E") setState('Tüeren.0.Balkontüere.Status', true); else if('sonoff.0.Sonoff_Bridge.RfReceived_Data' == "9B7667") setState('Tüeren.0.Balkontüere.Status', false); });
-
So, hab den Fehler gefunden.
Es waren natürlich mal wieder Klammern und Sonstiges.Jetzt Funktioniert es:
on( { id:"sonoff.0.Sonoff_Bridge.RfReceived_Data", change: 'ne'}, function() { if(getState("sonoff.0.Sonoff_Bridge.RfReceived_Data").val == "9B766E") setState("Tüeren.0.Balkontüere.Status", true); else if(getState("sonoff.0.Sonoff_Bridge.RfReceived_Data").val == "9B7667") setState("Tüeren.0.Balkontüere.Status", false); });
Danke an alle für die Hilfe.