Stromzähler per IR auslesen / MQTT

Hallo zusammen,

ich bin noch ganz neu in der Homeywelt.

Ich habe einen IR Lesekopf zum auslesen meines Stromzählers. Das ganze erfolgt per ESP01s mit einer Tasmotafirmware, welche die Daten dann per MQTT an Homey (mqtt client und Broker sind installiert) schickt. In den Logs sehe ich auch, dass was ankommt - aber wie erstelle ich denn jetzt ein Device, welche dann die Werte vom MQTT (Gesamtverbrauch in kWh) übernimmt?

Ich habs mit der Tasmota APP probiert - das Tasmotagwerät wird auch gefunden - aber da finde ich nichts, was auch nur im entferntesten mit einem Stromzähler zu tun hat.

Kann mir hier einer von Euch helfen?

Viele Grüße
Dominic

Soweit ich das in der Tasmota App Beschreibung gesehen habe ist aktuell kein Stromzählerlesekopf als device implementiert. Du hast jetzt folgende Möglichkeiten:

a) Den Entwickler zu bitten ein solches Device zu integrieren.

b) Per MGTT Broker und MQTT Client App deinen Lesekopf selbst mit Homey auszulesen.

c) Dir einen Lesekopf zuzulegen, der bereits per App in Homey gut integriert ist, z.B. Youless 120.

Ich besitze den Youless 120 und bin damit in Kombi mit Homey sehr zufrieden. Falls du Zeit und Nerven sparen willst wähle c).

Falls du Lust hast mit MQTT zu “basteln” wähle b).

Falls du Zeit und Hoffnung mitbringst a)

Hi,

danke für die schnelle Rückmeldung.

bei b) habe ich ja schon die halbe strecke - das wäre also mein erster Versuch, bevor ich dann irgendwann c) nutze :wink:

Spass beiseite - kannst Du mir eine Richtung / einen Tip geben, wie ich das Topic, dass schon in Homey ankommt einem Gerät (welches muss ich da hinzufügen und wie?) zuordnen kann?

Wie, oder mit welchem Gerät hast du den früher den Stromzähler ausgelesen ? Mit einem Raspi ?
Wenn ja, kannst du den Raspi mit HA flashen und en Lesekopf hinzu fügen.

Mit der Home Assistant Community App, kannst du die Werte dann in Homey integrieren.

Früher hatte ich ein system namens homee (also mit Doppel “e”) im Einsatz. Dort habe ich dann über NodeRed auf einer CCU3 den Datensatz an ein virtuelles Gerät geleitet. War leider nicht sonderlich stabil ;-(

Jetzt mit homey wollte ich es “sauber” machen, also mqtt-topic kommt an, wird durch homey abonniert und auf welche art und weise auch immer (genau da hänge ich noch im Konzept) dann an ein Device weiter gegeben

homee ist mir von früher noch gut bekannt. Node Red hast du über einen Raspi laufen gehabt ?
Wenn ja ist die Himbeere jetzt arbeitslos. Einfach auf eine SD Karte oder SSD Home Assistant flashen. HA läuft nach 10 Minuten. Wenn du Node Red benutzt hast, ist HA dagegen Kindergeburtstag. HA kann dir auch in Zukunft viele tolle Sachen bereit stellen, die du dann in Homey importieren kannst. Ich benutze das System seit vielen Jahren als Zuspieler für Homey.

Blöde Frage von einem Ahnungslosen was MQTT, NodeRed etc. betrifft, aber können die Daten nicht per Skript (wovon ich auch keine Ahnung habe) in ein virtuelles Gerät geschrieben werden, @RonnyW?

Viel einfacher. Wenn die Daten bereits in einem MQTT-Broker landen, dann kann man in Homey ein Gerät zur MQTT-Hub-App anlegen und die Topic eintragen. Dann übernimmt das Gerät jede Änderung der MQTT-Topic.

2 Likes

… funktioniert aber nur, wenn man noch ein drittes System am laufen hat, und nicht den Homey als Broker nutzt, oder?

Nein, das wäre egal. Du kannst auch den MQTT-Broker auf Homey laufen lassen.
Es müssen dann nur alle Clients auf diesen Broker zugreifen (also dein Lesekopf und die MQTT-Client-App in Homey).

Ich habe auch einen IR Lesekopf mit ESP und Tasmota.

Da MQTT bei dir schon läuft, hast du zwei Möglichkeiten:

  1. Ein MQTT Device über den MQTT Client
    Nachteil: Bei dem Gerät fehlt dir die Erkennung als Energiezähler in Homey

  2. Ein Virtuelles Gerät über Device Capabilities anlegen Power(Sensor) für Watt und Energie (Sensor) für kwh und anschliessendes füllen über einen Flow

1.A: Meine Einstellungen des MQTT Gerätes:
Musst du dann anpassen auf deine Sensordaten.


{
  "measure_power.1": {
    "capability": "measure_power",
    "stateTopic": "tele/tasmota_B65B9C/SENSOR",
    "setTopic": "",
    "valueTemplate": "$.Power.Power_curr",
    "outputTemplate": "",
    "displayName": "Leistung"
  },
  "meter_power": {
    "capability": "meter_power",
    "stateTopic": "tele/tasmota_B65B9C/SENSOR",
    "setTopic": "",
    "valueTemplate": "$.Power.Total_in",
    "outputTemplate": "",
    "displayName": "Energie"
  }, 

"meter_power.2": {
    "capability": "meter_power.out",
    "stateTopic": "tele/tasmota_B65B9C/SENSOR",
    "setTopic": "",
    "valueTemplate": "$.Power.Total_out",
    "outputTemplate": "",
    "displayName": "Einspeisung"
  },

  "measure_power.2": {
    "capability": "measure_power",
    "stateTopic": "",
    "setTopic": "",
    "valueTemplate": null,
    "outputTemplate": "",
    "displayName": "Summe"
  }
}

2A: Flows zum füllen des virtuellen Gerätes:

Hier habe ich in Better Logic variablen angelegt, die über den Flow gefüllt werden und anschliessend in das Virtuelle Gerät übertagen werden.
Den Weg über die Variablen bin ich gegangen, um den Zähler nur anzupassen, wenn der Sensorwert höher ist und Datenfehler zu vermeiden. (Neustart des Tasmotas und 0 werte lesen etc.)

1 Like

Hallo @Michael_Justus,

das sieht danach aus, dass Du mich in die richtige Richtung bringst :wink:

Ich bin leider noch komplett neu in Homey, daher meine wahrscheinlich ziemlich doofe Frage:

Bei 1: Wie lege ich denn ein MQTT Device über MQTT Client an? Ich kann bei Gerät hinzufügen ja kein MQTT Client als Plattform auswählen.

Bei 2: Dafür brauche ich was? Die App “Advanced Device Capabilities”? Wenn ja, wie lege ich denn dann einen Sensor an, den ich dann durch den Flow mit den MQTT Daten befülle?

Du erstellst keine Gerät, sondern regelst das über den Flow.
image

Mit dem Ergebnis fütterst Du den Rest.

in Deinem Fall wäre das sowas:


Du bekommst über MQTT immer eine Textvariable, welche du erstmal zu einer Zahl umwandeln musst, dass mache ich mit Homeyscript. Das Ergebnis kann dann in eine Logik oder Betterlogic Variable gespeichert werden. Von hier aus hast Du alle Möglichkeiten dasmit weiter zu machen. Du kannst einen virtuellen Sensor füttern mit “Wenn Variable Redox sich ändert” dann “Setze virtuellen Sensorwert auf Redox”

Das Homeyscript was aus Text eine Zahlenvariable macht:

var MyNum = parseFloat(args[0])
await setTagValue("RetNum", {type: "number", title: "RetNum"}, MyNum);
return MyNum;

Falls du noch Fragen hast. Meld Dich :wink:

Edit: Zu Zweitens: es reicht auch normales virtuelles Gerät.

Vielen Dank, das probiere ich heute Abend mal aus.

Zu 2:
Wenn ich ein virtuelles Gerät erstellen will, dann habe ich nur das zur Auswahl:

ich bräuchte ja einen virtuellen Sensor, oder? Und wie lege ich dann die richtigen Capabilitites an? Ich habe es mal mit virtueller Steckdose probiert, da kann ich dann aber nichts einstellen an capabilitites:

Über die App kannst Du Virtuelle Sensoren erstellen, welche du dann auch per Flow füllen kannst.

Es gibt bestimmt noch ganz viele andere Wege - das war für mich der Leichteste.

Es gibt sicher auch einen eleganteren Weg um aus einer Textvariable eine Nummernvariable zu machen.

Ich scheitere wohl noch an den Basics ;-(

Ich habe mal ne ganz einfachen Flow gebaut, der mir einfach nur ne Push Nachricht schicken soll, wenn bei MQTT Client mein Topic ankommt:

Problem: Es kommt keine PushNachricht.

Das Log vom MQTT Client sieht so aus:

es scheint also als wäre das topic abonniert…

Zu 1: Wenn du ein MQTT Device anlegen möchtest, das geht über die “MQTT Hub” app. Dabei dann MQTT Device auswählen, Sensor, dann die Capability (Energie KWh und/oder Power W) + Namen festlegen
Unter Topics kommt dann die Sensorangabe, bei mir war das für Kwh:

   "meter_power": {
     "capability": "meter_power",
     "stateTopic": "tele/tasmota_B65B9C/SENSOR",
     "setTopic": "",
     "valueTemplate": "$.Power.Total_in",
     "outputTemplate": "",
     "displayName": "Energie"
   },

Bei dir musst das das mit deinen Sensorbezeichnungen mal durchtesten. Das kannst du nach Deviceerstellung noch anpassen und testen. Allerdings habe ich das MQTT Device nicht dazu bekommen als Stromzähler in Homey zu gelten.

Zu 2. App “Device Capabilities”

Von meinem Device die TEF Daten: (kann mann beim Erstellen des Gerätes importieren)
Ich habe aber drei Einträge, Kwh Verbrauch Watt und Kwh Einspeisung
Das überzählige kannst du ja löschen.

Summary

[tef:AVD,FLOWS:“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”:/tef]




Aber zu den AVDs kann dir mit Sicherheit jemand anderes mehr helfen als ich.
Gefüllt werden muss das AVD dann über Flows.
Meinen Flow dazu hatte ich oben ja schon gepostet.
Dafür ist aber die App HTTP request flow cards und Better Logic notwendig (bei mir jedenfalls)
Und ich fülle erst den wert in eine Better Logic Variable (Kwh) und nur wennd er neue Wert höher als der alte ändere ich das im AVD.

bei mir sieht das so aus:

Den TAG im WENN musst du raus nehmen.
Der TAG enthält ja den kompletten Texteintrag zum späteren verarbeiten im Flow

Ich bin irgendwie zu doof zu ;-(

So sieht der einfache Flow jetzt aus:

Aber es kommt keine PushNachricht. Kann ich den Flow irgendwie debuggen? Ich befürchte ja, dass die Nachricht vom MQTT Client irgendwie nicht angenommen wird …

Hallo @Domino1707

Mit dem MQTT-Explorer können Sie das genaue Topic sehen (+ kopieren):

Außerdem kann die Push-Karte manchmal auf „Rate begrenzt“ eingestellt sein und nichts damit gemacht werden … Ich füge immer eine Log-karte mit derselben Nachricht und dem Flow-Namen hinzu. Bleibt auch das leer, dann funktioniert der Auslöser offenbar nicht (= das Topic entspricht nicht der Realität)




Hallo @Michael_Justus , ein kleiner Tipp,
Es ist auch ohne diese Flowkarten möglich,

BLL-Variablen können direkt in AVDs angezeigt werden
Screenshot from 2023-07-11 21-44-21