Alarmmodus - 2 Fragen

Danke, jetzt ist es auf dieser Ebene in Ordnung.

Mein Problem ist, dass meine HEIMAN-Sirene nur zwei Zustände hat: „batterie“ und „linkquality“

Ich habe keine Zustände „on“ und „off“!?

Und was gibt es im Reiter „Exposé“?

Du kannst alle Informationen, die du brauchst, in der Dokumentation des Links finden, den du gepostet hast

Ok, hier kannst du also bereits deine Sirene bedienen.
Falls du sie aber von Node-Red aus steuern möchtest, findest du die Informationen in diesem Teil der Dokumentation. Es gibt ein Beispiel für eine Nachricht, die du senden kannst.

Es gibt ein Problem, du hast zuerst die Textfunktion und dann die Sirene Ein/Aus-Funktion erstellt. Aber es muss andersherum sein, sonst hast du den Schalter im Dashboard nicht, um die Sirene ein- oder auszuschalten. Und du deaktivierst « Ist es ein Sensor? » im Textbereich, aber das muss im Bereich « Sirene Ein/Aus » gemacht werden.

Sobald das erledigt ist, gib mir die Werte der 3 Topics, dann zeige ich dir den Code, den du in den Funktionsknoten ändern musst, falls du es nicht schaffst.

Im Knoten
image

Ersetze den Code durch diesen, indem du den Code-Namen NOMSIRENE durch den von dir genannten Zigbee2Mqtt änderst

var inputTopic = msg.topic;
var inputPayload = msg.payload;

// Logik zum Ändern des Topics und der Nutzlast in Abhängigkeit sowohl vom Eingabetopic als auch von der Eingabenutzlast

if (inputTopic === "gladys/device/mqtt:Sirène_1/feature/mqtt:sirène_1/state" && inputPayload === "0") {
  // Anpassung des Topics und der Nutzlast von Gladys an zigbee2mqtt 
  msg.topic = "zigbee2mqtt/NOMSIRENE/set/warning/mode"; msg.payload = "stop";
}

if (inputTopic === "gladys/device/mqtt:Sirène_1/feature/mqtt:sirène_1/state" && inputPayload === "1") {
  // Anpassung des Topics und der Nutzlast von Gladys an zigbee2mqtt 
  msg.topic = "zigbee2mqtt/NOMSIRENE/set/warning/mode"; msg.payload = "emergency";
}

return msg;

und sag mir, ob es funktioniert

Nein, du kannst deine Funktionen in der Reihenfolge erstellen, die du möchtest.

@_Will_71
Ich habe mich falsch ausgedrückt (das passiert mir manchmal :disappointed_relieved:), aber er kann die Funktionen tatsächlich in der Reihenfolge erstellen, die er möchte. Aber @Isage hat hier nicht die richtigen Parameter gesetzt.

« Sirene Ein/Aus » ist ein Toggle

image

er kann es ein- und ausschalten, aber er wird keinen Status zurückbekommen, wenn die Sirene z. B. durch eine Fernbedienung oder eine Szene in Gladys ein- oder ausgeschaltet wird.

Die richtigen Parameter für den Sirenenteil sollten sein

So könnte es trotzdem funktionieren, man muss nur den richtigen Code im « Funktion »-Node anpassen.

Allerdings kann die Funktion « Text » verwendet werden, um « Battery » anzuzeigen, das die Sirene veröffentlicht

In meinem Fall, wenn ich http://IP deines Gladys:8080/#/ aufrufe,
habe ich das für meine NOUS-5-Steckdose

image

Wenn ich auf NOUS-5 klicke

Kannst du dasselbe für deine Sirene tun? Das würde die Hilfe erleichtern.

Okay, jetzt verstehe ich :+1:

hier sind die Themen

gladys/master/device/mqtt:sirene_1/feature/mqtt:sirene_1/state


gladys/master/device/mqtt:sirene_1/feature/mqtt:sirene_1_power/text
gladys/device/mqtt:sirene_1/feature/mqtt:sirene_1_power/state

Ich habe die Änderungen gemacht

Das ist, was ich für meine Sirene habe

und in

Im Node

image

versuche, den Code durch diesen zu ersetzen und sag mir, ob sich etwas ändert

var inputTopic = msg.topic;
var inputPayload = msg.payload;

// Logik zum Ändern des Topics und der Nutzlast in Abhängigkeit von sowohl dem Eingabe-Topic als auch der Eingabe-Nutzlast

if (inputTopic === "gladys/device/mqtt:sirene_1/feature/mqtt:sirene_1/state" && inputPayload === "0") {
  // Anpassung des Topics und der Nutzlast von Gladys an zigbee2mqtt 
  msg.topic = "zigbee2mqtt/Sirène_1/set/warning/mode";
  msg.payload = {
    warning: {
      mode: stop,
      level: high,
      strobe_level: high,
      strobe: true,
      strobe_duty_cycle: 10,
      duration: 5
    }
  };
}

if (inputTopic === "gladys/device/mqtt:sirene_1/feature/mqtt:sirene_1/state" && inputPayload === "1") {
  // Anpassung des Topics und der Nutzlast von Gladys an zigbee2mqtt 
  msg.topic = "zigbee2mqtt/Sirène_1/set/warning/mode"; 
  msg.payload = {
    warning: {
      mode: emergency,
      level: high,
      strobe_level: high,
      strobe: true,
      strobe_duty_cycle: 10,
      duration: 5
    }
  };
}

return msg;

Ich habe das hier

Hast du es mit dem neuen Code versucht?
Tatsächlich stellt dieser Alarm seine Werte nicht korrekt dar, es gibt ein Issue Heiman HS2WD-E siren not really compatible ? · Issue #14424 · Koenkk/zigbee2mqtt · GitHub, um es zu melden, aber anscheinend kann man ihn mit dem neuen Code steuern.

Ich habe den neuen Code kopiert

Ich habe diese Meldung…

bestätigt, dann müssen wir im Node-RED-Debugger schauen, was das ergibt


« Ungültige Eigenschaften – JavaScript-Fehler »

Mist, ich habe eine kaputte Kopie meiner anderen Funktion gemacht, bevor ich die Felder ausgefüllt habe… oh Mann! :rofl:
Hier ist der richtige Code :wink:

var inputTopic = msg.topic;
var inputPayload = msg.payload;

// Logik zum Ändern des Topics und der Nutzlast in Abhängigkeit von sowohl dem Eingabetopic als auch der Nutzlast

// ****************************************************************************************************************************/
if (inputTopic === "gladys/device/mqtt:sirene_1/feature/mqtt:sirene_1/state" && inputPayload === "0") {
  // Anpassung des Topics und der Nutzlast von Gladys an zigbee2mqtt 
  msg.topic = "zigbee2mqtt/Sirène_1/set";
  msg.payload = {
    warning: {
      mode: "emergency",       // mode              : stop, burglar, fire, emergency, police_panic, fire_panic, emergency_panic
      level: "high",           // level             : low, medium, high, very_high
      strobe_level: "high",    // strobe_level      : low, medium, high, very_high
      strobe: "true",          // strobe            : true, false 
      strobe_duty_cycle: "5",  // strobe_duty_cycle : 1 à 10
      duration: "10"           // duration          : Dauer in Sekunden
    }
  };
}
// ****************************************************************************************************************************/

// ****************************************************************************************************************************/
if (inputTopic === "gladys/device/mqtt:sirene_1/feature/mqtt:sirene_1/state" && inputPayload === "1") {
  // Anpassung des Topics und der Nutzlast von Gladys an zigbee2mqtt 
  msg.topic = "zigbee2mqtt/Sirène_1/set"; 
  msg.payload = {
    warning: {
      mode: "emergency",       // mode              : stop, burglar, fire, emergency, police_panic, fire_panic, emergency_panic
      level: "high",           // level             : low, medium, high, very_high
      strobe_level: "high",    // strobe_level      : low, medium, high, very_high
      strobe: "true",          // strobe            : true, false 
      strobe_duty_cycle: "5",  // strobe_duty_cycle : 1 à 10
      duration: "10"           // duration          : Dauer in Sekunden
    }
  }; 
}
// ****************************************************************************************************************************/

return msg;