Befehl "publish2" Verständnisfrage

  • Moin, ich habe mir mit einem ESP8266 mit Tasmota einen RFID Leser gebaut. Als Leseköpfe habe ich daran einen RDM6300 und einen PN532 angeschlossen.

    Das ganze Auslesen lief bisher per MQTT auf meinem ioBroker super.

    Nun habe ich mal ein HomeAssistant System aufgesetzt und dakommt mir das nicht per MQTT richtig an.

    Ich habe dann nach dieser Seite meinem Tasmota eine "Rule" vergeben: https://blakadder.com/tasmota-tags/

    Das klappt auch, nur kann ich immer nur einen der beiden Leseköpfe auswerten mit der Rule. Selbst wenn ich rule1 mit dem publish2 Befehl einen Lesekopf zuordne und mit rule2 den zweiten publish2 Befehl für den anderen Lesekopf vergebe wird immer nur einer ausgelesen.

    Kann ich den publish2 immer nur einmal vergeben? Könsnte man dann beide Auswertungen in eine Rule huneinbekommen?

    Stehe gerade etwas auf dem Schlauch und wäre für jede Hilfe dankbar :)

  • Moin.

    Poste doch mal die Rule die du verwendest und vor allem den Tasmota-Konsolenoutput. Möglichweise parst du nicht richtig?

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Wenn ich das richtig verstehe, wurde es bisher korrekt über MQTT publiziert, oder? Das ist im Console Output zu erkennen.

    Vermutlich erwartet HA ein anderes Topic oder einen anderen Payload.

  • Meine erste Rule sieht so aus:

    Code
    rule1 on system#boot do publish2 homeassistant/tag/%macaddr%_tag/config {"topic":"tele/%topic%/SENSOR","value_template":"{{value_json['PN532']['UID']}}","device":{"connections":[["mac","%macaddr%"]]}} endon

    Die Ausgabe der Console sieht dann so aus:

    Code
    RUL: Stored uncompressed, would compress from 200 to 166 (-17%)
    RSL: RESULT = {"Rule1":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":200,"Free":311,"Rules":"on system#boot do publish2 homeassistant/tag/%macaddr%_tag/config {\"topic\":\"tele/%topic%/SENSOR\",\"value_template\":\"{{value_json['PN532']['UID']}}\",\"device\":{\"connections\":[[\"mac\",\"%macaddr%\"]]}} endon"}}


    Die zweite Rule hab ich so angelegt:

    Code
    rule2 on system#boot do publish2 homeassistant/tag/%macaddr%_tag/config {"topic":"tele/%topic%/SENSOR","value_template":"{{value_json['RDM6300']['UID']}}","device":{"connections":[["mac","%macaddr%"]]}} endon

    Und die Ausgabe sieht dann so aus:

    Code
    RUL: Stored uncompressed, would compress from 202 to 168 (-17%)
    RSL: RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":202,"Free":309,"Rules":"on system#boot do publish2 homeassistant/tag/%macaddr%_tag/config {\"topic\":\"tele/%topic%/SENSOR\",\"value_template\":\"{{value_json['RDM6300']['UID']}}\",\"device\":{\"connections\":[[\"mac\",\"%macaddr%\"]]}} endon"}}


    Im HomeAssistant wird dann aber immer nur der, der unter der Rule1 eingesetzt ist ausgewertet.

  • Hi.

    ok, fangen wir mal an:

    Was da an HA übertragen wird kommt definitiv nicht von den Rule, denn die sind beide deaktiviert:

    "Rule1":{"State":"OFF",

    "Rule2":{"State":"OFF",

    Vermutlich kommt die Übertragung von der ganz normalen Anmeldung an HA beim booten.

    Ich kann jetzt nicht genau sagen ob die Rule von https://blakadder.com/tasmota-tags/ richtig ist und funktioniert aber falls, dann musst du die Rules erst mal aktivieren:

    Rule1 1

    Rule2 1


    Wobei die Rule auch in eine zusammengefasst werden können:

    Code
    rule1 on system#boot do backlog publish2 homeassistant/tag/%macaddr%_tag/config {"topic":"tele/%topic%/SENSOR","value_template":"{{value_json['PN532']['UID']}}","device":{"connections":[["mac","%macaddr%"]]}}; publish2 homeassistant/tag/%macaddr%_tag/config {"topic":"tele/%topic%/SENSOR","value_template":"{{value_json['RDM6300']['UID']}}","device":{"connections":[["mac","%macaddr%"]]}} endon

    aktivieren mit: Rule1 1

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Sorry, vergessen zu erwähnen, das ich die Rolle jeweils mit Rule1 1 und Rule2 1 aktiviert habe.

    Habe nur vorhin die Rules nochmal übertragen um die Ausgabe zeigen zu können ...

  • Poste doch mal dein normalen Teleperiod output aus der Tasmota Konsole. Sieht man da beide Leser?

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070