[Modul] Tasmota

Also in der Instanz erscheint im Debug nicht, dafür hat der MQTT-Konfigurator eine neue Instanz angelegt:

Im MQTT-Debug kommt die Info (logischweise) auch an.

Grüße Frank

Wie sieht die Konfiguration der Instanz aus?

Grüße,
Kai

Die Konfiguration findest du mit einem Doppelklick auf die Instanz. :slight_smile:

Grüße,
Kai

achso, du meinst das :

Ich kann es gerade nicht nachvollziehen, kannst du mal das Debug von der „MQTT Server Gerät“ Instanz posten?

Grüße,
Kai

Hallo Kai,

nachdem die Idents insbes. auch in Verbindung mit IPSVIEW eine größere Bedeutung bekommen haben, wollte ich mal fragen, nach welchen Kriterien du das im Tasmota-Modul machst. Mir ist aufgefallen, dass wenn ein (Tasmota-Shelly) ein AddOn hat, die Temperatur bzw. die Feuchtigkeit unterschiedliche Idents bekommen, weil es unterschiedliche Sensormodelle sind. Im Endeffekt spielt das für die Tasmota-Instanz ja eigentlich keine Rolle. Wäre es möglich, die Idents gleich zu benennen ?
Selbst ändern kann man es ja nicht, da beim nächsten Sendezyklus die nicht vorhandene Idents neu angelegt werden und die umbenannten nicht mehr mit Datenversorgt werden.

DS18B20:

AM2301:

Grüße Frank

Nachtrag: Ich verstehe, dass es bei mehreren Addons an einem Shelly zu einem Konflikt kommen kann, wenn z.B. mehrere Temperatursensoren angeschlossen sind. Vielleicht könnte man daher die weiteren Idents auch „Temperatur_“.ID benennen. Damit könnte man den Ident inhaltlich identifizieren ohne Mehrfachbenennungen zu erhalten.
Die Alternative, den Tasmota-Code selbst zu kompilieren (mit #define DS18x20_USE_ID_ALIAS in user_config_override.h) würde ich nur sehr ungern angehen…

Wieso müssen die Idents einen bestimmten Namen haben?

Grüße,
Kai

Weil bei den persönlichen Elementen der Ident die Identifikation des Attributs ist. Das bedeutet, wenn du dem persönlichen Element verschiedene Instanzen zuordnest, können nur gleichlautende Idents zugeordnet werden.

Das kenne ich in IPSView gar nicht.
Aber ich kann und möchte gerade bei Tasmota auch nichts anpassen.

Grüße,
Kai

Tasmota mit Kincony KC868-A16

Hallo Kai,

ich habe mir beim Ali günstig ein KC868-A16 Board gekauft und es dann mit der angepassten Firmware (incl. PCF8574 Driver) geflasht.
Abgesehen davon, dass die PCF8574 Konfiguration im Gegensatz zur Beschreibung, bei mir genau andersherum (Input=>Output und Output=>Input) eingestellt werden musste, funktioniert es fast ganz gut:

Es werden aber nur die 8 Inputs des ersten PCF8574 als Variable angelegt. Die Eingänge des zweiten PCF8574 kommen zwar im Debug an, werden aber nicht als Variable angelegt. (PCF8574-2_INP)

dump.txt (14,7 KB)

Woran kann das liegen?
Ich habe die Einstellungen im Modul schon auf alle möglichen Kombinationen geändert, ohne Erfolg.

Gruß
Jörg

Ich habe mir den Dump heute morgen noch mal angeschaut und mir ist aufgefallen, dass nach einer Änderung des Eingangs vom ersten PCF8574 zwei Zeilen Result Payload dann zwei Zeilen Sensor Payload und zwei Zeilen Sensor Topic kommen.
Ändere ich einen Eingang am zweiten PCF8574, kommen nur zwei Zeilen Result Payload.

Ich habe noch mal einen Dump hinzugefügt. Zuerst ein Reset, dann „PCF8574-1_INP D0“ kurz auf low und dann „PCF8574-2_INP D0“ kurz auf low.

dump.txt (60,7 KB)

ChatGPT hat mir folgende Tipps gegeben:

Um sicherzustellen, dass der Zustand aller PCF8574-Module per MQTT übertragen wird, können zusätzliche Tasmota-Konfigurationsoptionen geprüft und angepasst werden.

Hier sind ein paar Schritte, die helfen sollten:

  1. Konfigurationsoption SetOption114 verwenden:
  • Gib in der Tasmota-Konsole den Befehl SetOption114 1 ein, um sicherzustellen, dass Tasmota alle PCF8574-Pins als Eingänge behandelt und bei Statusänderungen die Informationen per MQTT sendet.
  1. Eingänge manuell konfigurieren:
  • Falls SetOption114 bereits gesetzt ist, kannst du die Einstellungen für die individuellen Pins des zweiten PCF8574 manuell anpassen. Prüfe, ob die Ports in der Konsole korrekt definiert sind und jeweils als „Input“ oder „Output“ zugewiesen sind.
  1. Aktiviere SetOption19:
  • Um die MQTT-Veröffentlichungen zu forcieren, kannst du mit dem Befehl SetOption19 1 sicherstellen, dass alle Änderungen an den Geräten direkt an MQTT gesendet werden.
  1. Erweiterte MQTT-Optionen prüfen:
  • Stelle sicher, dass SetOption26 1 gesetzt ist. Dieser Befehl aktiviert die erweiterten Funktionen für I/O-Expander und kann bei bestimmten Hardware-Konfigurationen helfen, alle Statusänderungen per MQTT zu senden.
  1. Webinterface vs. MQTT Unterschiede prüfen:
  • Wenn nur die Anzeige im Webinterface aktualisiert wird, kannst du durch den Befehl Status 0 in der Tasmota-Konsole eine vollständige Statusübersicht abrufen und überprüfen, ob die Eingänge korrekt aktualisiert und angezeigt werden.

Sollten die Schritte weiterhin nur teilweise erfolgreich sein, könnte ein Firmware-Update spezifisch für dieses Board im Tasmota-Forum oder von anderen Nutzern verfügbar sein.

Ich habe alles so durchgeführt, leider ohne Erfolg.
Tasmota selber zeigt auf seinem WebFront die Änderung richtig an. Hier ist „PCF8574-2_INP D0“ low:

Im MQTT Explorer sehen die Werte-Änderungen so aus:

Der Topic SENSOR wird allerdings nicht in „Realtime“ gesendet. Den Intervall kann man mit z.B. TelePeriod 10 (alle 10 Sek.) einstellen.
Der Topic tele/stat/topic/RESULT wird sofort nach einer Änderung am Eingang gesendet.

print_r(Tasmota_sendMQTTCommand(55792, „Status“, „5“));

Bringt zwar eine Antwort im Debug-Fenster, es retourniert aber nichts. Warum?

Hi,
versuch mal:

print_r(intval(Tasmota_sendMQTTCommand(55792, „Status“, „5“)));

print_r(False); gibt nämlich nichts aus und das deutet wohl auf einen Fehler hin.

Ralf

Die Frage ist nur, warum es einen Fehler gibt - deviceübergreifend.
Grüße, H-C

Hi,
oder vielleicht kein Fehler:

Tasmota_sendMQTTCommand($InstanceID, $command, $msg)
Mit dieser Funktion kann jedes MQTT Command abgeschickt werden. Als Rückgabewert wird JSON geliefert.

versuch mal:

$result = Tasmota_sendMQTTCommand(55792, „Status“, „5“);
var_dump($result);

Ralf