NEWS
Befehl an Gerät senden?
-
Nabend,
Ich möchte z.B. am Monatsende den Gesamtverbrauch einer Tasmota-Dose auf Null zurücksetzen.
Nach läääääängerem Suchen habe ich zumindest dies hier gefunden und mit Erfolg probiert:
http://192.168.178.65/cm?cmnd=EnergyTotal%200
In Blockly über den Baustein request URL und damit als JS
try { require("request")('http://192.168.178.65/cm?cmnd=EnergyTotal%200').on("error", (e) => { console.error(e); }); } catch (e) { console.error(e); }
gelöst (der Trigger ist hier noch nicht definiert).
So weit - so gut.
So wie ich das laienhaft sehe geht das aber auch "irgendwie" via sendTo und/oder getState (?)
Neugierig wie ich bin, würde ich gern wissen - Fundstelle würde reichen - wie das genau funktioniert.
Ich habe dazu leider nichts für mich Erhellendes gefunden, was mich dem Wissen näher bringt.Kann mir Jemand einen Tipp geben? - Danke.
Schönes WE -
@pi-ter sagte in Befehl an Gerät senden?:
So wie ich das laienhaft sehe geht das aber auch "irgendwie" via sendTo und/oder getState (?)
Wenn Tasmota per MQTT angebunden ist, kannst Du den Befehl (wenn er einmal gesendet wurde) auch über einen State erneut senden.
-
@haus-automatisierung
Sei mir nicht böse, aber meine Frage hattest Du schon verstanden,oder?Was soll denn eine fragender Laie aus Deiner Antwort entnehmen?
Befehl (wenn er einmal gesendet wurde)
Und wie sende ich diesen Befehl? Das war ja meine Frage
auch über einen State erneut senden
Ich will nicht erneut senden, ich will wissen, wie das geht.
Neugierig wie ich bin, würde ich gern wissen - Fundstelle würde reichen - wie das genau funktioniert.
War das soooo unklar formuliert?
DAnke
-
@pi-ter Habe ich in zig Inhalten rauf und runter erklärt. Daher hier die Kurzfassung:
- Der MQTT-Adapter erstellt für jedes abonnierte Topic automatisch einen Datenpunkt, sobald eine Nachricht reinkommt
- Genauso eben auch für dein cmnd / EnergyTotal
- Du kannst also z.B. mit dem MQTT Explorer (oder einem anderen Client) den Wert 0 auf dem Topic einmal publishen, dann gibts den Datenpunkt dazu im Objektbaum
- Alternativ kannst Du auch einfach den Blockly-Baustein dafür nehmen
Wie das Topic aufgebaut werden muss, hängt von der Konfiguration in Tasmota ab. Da fehlen Infos um zu helfen. Es steht ja nichtmal in deinem Beitrag, wie das Gerät im ioBroker integriert wurde. Aktuell nur per HTTP? Oder über den Sonoff-Adapter? Oder über den MQTT-Adapter?
-
@haus-automatisierung
Vielen, vielen Dank für Deine umfassende Hilfe.
Ich habe nach den Fundstellen, die Du genannt hattest (Suchbegriffe "rauf" bzw. "runter") gesucht, bin aber leider nicht fündig geworden.Aber lass es gut sein, ich wurschtel mich selber durch und mache es so, dass es funktioniert. Nach Deinen umfangreichen Erläuterungen zu urteilen, scheint das Problem eh zu groß für mich zu sein.
-
@pi-ter Ich habe meine Tasmota Dose über den Sonoff-Adapter integriert.
Da kann man definitiv den Datenpunkt "ENERGY_total" nicht beschreiben, zurücksetzen.Über den MQTT-Adapter gab es dieses sperrige JSON-Gedöns, dem ich ausweichen wollte.
Man kann da anscheinend "Set" Datenpunkte selber erzeugen, und damit mehr Kontrolle über den Zwischenstecker bekommen ...Hier hat mir das mal jemand erklärt ....
https://forum.iobroker.net/topic/71304/gelöst-meine-irrfahrt-aquara-temperatursensoren-einbinden/61?_=1707071956509 -
@martinp
Nabend,danke für Deine Hinweise. Eigentlich habe ich das Thema für mich abgehakt. Scheint so oder so komplizierter zu sein, als ich dachte.
Ja, die Tasmota-Dosen laufen via Sonoff-Adapter, die Shellys mit Org.-Software über den Shelly-Adapter.Tasmota:
Dort kann ich ja auf der Konsole mit "EnergyTotal 0" den Wert zurücksetzen. Ich dachte nun, das lässt sich über Scripte mittels entsprechender Befehle (sowas wie 'sendTo' oder 'setState') lösen. Code snippets dieser Art habe ich reichlich gefunden, und nahm nun an, das wäre etwas auch für diesen Fall.
Scheint aber nicht so zu sein.Egal, ich kann zeitgesteuert den im Ausgangspost genannten http-request absetzen und damit den Wert auf Null setzen. Problem gelöst
Damit könnte man auch bei Bedarf Werte setzen, z.B. um alte Werte zu übernehmen o.ä.Shelly:
Shellys gehen mit Verbrauchswerten / Datenpunkten je nach Produkt unterschiedlich um. Dort gibts keine Konsole und Befehle habe ich nur für die Relaisfunktionen gefunden. Als Lösung hat sich aber ein http-request angeboten, der das Geräte rebootet. Damit sind die aufgelaufenen Werte auch wieder bei Null, der Rest bleibt ja erhalten.
Auch hier Problem gelöstVorbelegung scheint dann hier aber nicht zu funktionieren. Zumindest habe ich nix dazu gefunden. Ist für mich im konkreten Fall auch weniger interessant.
Wozu der Aufwand ?
Ziel sind fixe Werte für Tages-, Monats- und Jahresverbrauch bzw. Vormonats - oder Vorjahreswerte.
Da nicht alle Geräte die aufgelaufenen Werte bei Stromausfall behalten, schreibe ich diese jeweils in den Bereich userdata, ggfls. noch über den Zwischenschritt alias.Da ich einen "Abrechnungszeitraum" April-März habe, und die Geräte bzw. Adapter unterschiedliche statistische Zeiträume bereitstellen ("aktuelles Jahr", "letzte 12 Monate", etc.) muss ich das auf meinen statistischen Zeitraum anpassen. Heißt: Alle Werte müssen jeweils am 31.03. nachts gesichert sein (Vorhaltezeit entweder unbegrenzt oder 400 Tage) und am 1. April kurz nach Mitternacht werden die Werte dann auf den Geräten zurückgesetzt.
Das wars dann auch schon...
Deine Fundstelle schaue ich mir noch mal genauer an, vielleicht kann ich da noch was draus lernen.
Nun dann - auf in eine neue Woche...
-
@pi-ter Ein anderer Weg wäre natürlich, Userdata-Punkte anzulegen, die den kumulierten Verbrauch zum entsprechenden Stichtag enthalten. Dann kommt man auch ohne Zurücksetzen aus ...
Verbrauch seit Stichtag = aktueller Kumulierter Verbrauch - Kumulierter Verbrauch zum Stichtag
Leider gibt es dann aber keine einfache Alias-Methodik, um damit arbeiten zu können. Da müsste man wohl mit Blockly o. Ä. arbeiten, und einen weiteren Userdata Punkt für den um den Stichtagswert verminderten Wert anlegen
-
@martinp
Ja, sicher, das ginge auch. Mit den userdata-DP arbeite ich ja schon.
Es führen halt viele Wege in die IrreUm alias komme ich wohl nicht herum, da einige Geräte die Werte in Wh, andere in kWh bereitstellen. Und gerundet muss auch noch werden.
Im Moment bin ich mit der jetzigen Lösung eigentlich ganz zufrieden und blockly habe ich recht gut im Griff.
Besser geht natürlich immer...