Starte mal openhab komplett neu. Das von dir beschriebene Problem hat nichts mit der Integration zu tun
Beiträge von horschte
-
-
Rennt bei mir sauber mit ICam .......
Bei Interesse schreibe ich gern eine Anleitung.....
Na los
-
ab morgen sollte dann der gestrige tag. also heute sichtbar werden, ab montag dann der wochenwert, ab dienstag der monatswert.
-
na dann solltest du heute bereits aktuellen verbrauch + gesamtverbrauch heute + preis heute sehen.
-
genau. ein,aus, dimmer, weisston funktioniert so wie ich das in erinnerung habe.
zu meiner hue bridge zeit hatte ich das mal auf der elite und der ultimate so eingebunden.
wenn man aktionen mit der harmony app erstellt gingen feste farben...die liessen sich jedoch nicht auf der fernbedienung selbst ändern.
wenn ich mich nicht täusche gingen aber hue szenen per fenbedienung. -
auf gehts....sieht zwar viel aus aber im grunde musst du da nie mehr was ändern. neue geräte müssen lediglich in die beiden später angesprochenen gruppen.
items (deine tv steckdose ist da auch ganz unten drin. also pass auf, dass du deine bisherigen einträge der steckdose löscht)
Code
Alles anzeigen// Der Gesamtverbrauch jedes neuen Gerätes muss in die Gruppe "Verbrauch_gesamt", der aktuelle Verbrauch jedes Gerätes muss in die Gruppe "Verbrauch_aktuell" // Verbrauchergruppen Group:Number:SUM Verbrauch_gesamt "Stromverbrauch gesamt [%.2f kWh]" <energy> Group:Number:SUM Verbrauch_aktuell "Stromverbrauch aktuell [%.0f Wh]" <energy> // Speicherung der Zeitfenster Group Verbrauchsberechnung // Berechnungen Verbrauch Number Verbrauch_gesamt_Tag "Verbrauch heute [%.2f kWh]" <energy> Number Verbrauch_gesamt_gestern "Verbrauch gestern [%.2f kWh]" <energy> (Verbrauchsberechnung) Number Verbrauch_gesamt_Woche "Verbrauch Woche [%.2f kWh]" <energy> Number Verbrauch_letzte_Woche "Verbrauch letzte Woche [%.2f kWh]" <energy> (Verbrauchsberechnung) Number Verbrauch_gesamt_Monat "Verbrauch Monat [%.2f kWh]" <energy> Number Verbrauch_letzten_Monat "Verbrauch letzten Monat [%.2f kWh]" <energy> (Verbrauchsberechnung) Number Verbrauch_gesamt_Jahr "Verbrauch Jahr [%.2f kWh]" <energy> Number Verbrauch_Tag_Durchschnitt "Tagesverbrauch Ø [%.2f kWh]" <energy> (Verbrauchsberechnung) Number Verbrauch_gesamt_Tag_Preis "Stromkosten heute [%.2f €]" <price> Number Verbrauch_gesamt_gestern_Preis "Stromkosten gestern [%.2f €]" <price> (Verbrauchsberechnung) Number Verbrauch_gesamt_Woche_Preis "Stromkosten Woche [%.2f €]" <price> Number Verbrauch_letzte_Woche_Preis "Stromkosten letzte Woche [%.2f €]" <price> (Verbrauchsberechnung) Number Verbrauch_gesamt_Monat_Preis "Stromkosten Monat [%.2f €]" <price> Number Verbrauch_letzten_Monat_Preis "Stromkosten letzten Monat [%.2f €]" <price> (Verbrauchsberechnung) Number Verbrauch_gesamt_Jahr_Preis "Stromkosten Jahr [%.2f €]" <price> // Steckdose Fernseher Switch Gosund_SP1_1 "Fernseher" <poweroutlet> (gEG_Wohnzimmer) {channel="mqtt:topic:MosquittoMqttBroker:Gosund_SP1_1:Gosund_SP1_1"} Number SP1_1_Power "aktuelle Leistung [%.1f W]" (Verbrauch_aktuell) {channel="mqtt:topic:MosquittoMqttBroker:Gosund_SP1_1:Power"} Number SP1_1_Yesterday "gestriger Verbrauch [%.3f kWh]" {channel="mqtt:topic:MosquittoMqttBroker:Gosund_SP1_1:Yesterday"} Number SP1_1_Total "gesamter Verbrauch" (Verbrauch_gesamt) {channel="mqtt:topic:MosquittoMqttBroker:Gosund_SP1_1:Total"}
rules
WICHTIG!!! ...die aufgeführte zeile val strompreis = 0.28 MUSS in die allererste zeile deiner *.rules datei. zusätzlich natürlich auf deinen strompreis anpassen ....den rest kannst du da plazieren wo du willstCode
Alles anzeigen// Strompreis in Cent val strompreis = 0.28 rule "Verbrauchsberechnungen Zeiträume" when Item Verbrauch_gesamt changed then val ZonedDateTime zdt = ZonedDateTime.now() var ZonedDateTime start_of_day = zdt.toLocalDate().atStartOfDay(zdt.getZone()) var ZonedDateTime start_of_week = zdt.with(DayOfWeek.MONDAY).toLocalDate().atStartOfDay(zdt.getZone()) var ZonedDateTime start_of_month = zdt.withDayOfMonth(1).toLocalDate().atStartOfDay(zdt.getZone()) var ZonedDateTime start_of_year = zdt.withDayOfYear(1).toLocalDate().atStartOfDay(zdt.getZone()) var heute = Verbrauch_gesamt.deltaSince(start_of_day) as Number var woche = Verbrauch_gesamt.deltaSince(start_of_week) as Number var monat = Verbrauch_gesamt.deltaSince(start_of_month) as Number var jahr = Verbrauch_gesamt.deltaSince(start_of_year) as Number Verbrauch_gesamt_Tag.postUpdate(heute) Verbrauch_gesamt_Woche.postUpdate(woche) Verbrauch_gesamt_Monat.postUpdate(monat) Verbrauch_gesamt_Jahr.postUpdate(jahr) end // Stromkostenberechnungen für festgelegte Zeiträume rule "Stromkostenberechnung heute" when Item Verbrauch_gesamt_Tag changed then val verbrauch_heute = Verbrauch_gesamt_Tag.state as Number Verbrauch_gesamt_Tag_Preis.postUpdate(verbrauch_heute * strompreis) end rule "Stromkostenberechnung Woche" when Item Verbrauch_gesamt_Woche changed then val verbrauch_woche = Verbrauch_gesamt_Woche.state as Number Verbrauch_gesamt_Woche_Preis.postUpdate(verbrauch_woche * strompreis) end rule "Stromkostenberechnung Monat" when Item Verbrauch_gesamt_Monat changed then val verbrauch_monat = Verbrauch_gesamt_Monat.state as Number Verbrauch_gesamt_Monat_Preis.postUpdate(verbrauch_monat * strompreis) end rule "Stromkostenberechnung Jahr" when Item Verbrauch_gesamt_Jahr changed then val verbrauch_jahr = Verbrauch_gesamt_Jahr.state as Number Verbrauch_gesamt_Jahr_Preis.postUpdate(verbrauch_jahr * strompreis) end rule "Stromkostenberechnung gestern und letzte woche" when Time cron "50 59 23 * * ?" then var tag = now.getDayOfWeek.getValue() Verbrauch_gesamt_gestern.postUpdate(Verbrauch_gesamt_Tag.state) Verbrauch_gesamt_gestern_Preis.postUpdate(Verbrauch_gesamt_Tag_Preis.state) if(tag == 7) { Verbrauch_letzte_Woche.postUpdate(Verbrauch_gesamt_Woche.state) Verbrauch_letzte_Woche_Preis.postUpdate(Verbrauch_gesamt_Woche_Preis.state) } end rule "Stromkostenberechnung letzten monat" when Time cron "50 59 23 L * ? *" then Verbrauch_letzten_Monat.postUpdate(Verbrauch_gesamt_Monat.state) Verbrauch_letzten_Monat_Preis.postUpdate(Verbrauch_gesamt_Monat_Preis.state) end rule "Stromkostenberechnung durchschnitt" when Item Verbrauch_gesamt_gestern changed then var Number Tagesdurchschnitt = Verbrauch_gesamt_gestern.averageSince(now.minusYears(20)) Verbrauch_Tag_Durchschnitt.postUpdate(Tagesdurchschnitt) end
sitemap beispiel
wichtig! es werden nur werte für zeitfenster angezeigt die komplett begonnen oder komplett abgeschlossen sind. monat aktuell kann bspw erst wenn der neue monat beginnt angezeigt werden, letzter monat erst wenn ein monat abgeschlossen ist usw usw. es müssen also vollständige datensätze der jeweiligen zeiträume erfasst sein. wenn du das heute integrierst, hast du also bspw ab morgen 0 uhr die ersten verbrauchsanzeigen und preise für den laufenden tag. aus dem grunde auch "visibility" in der sitemap, um items ohne wert auszublendeCode
Alles anzeigenText item=Verbrauch_aktuell { Frame label="Stromverbrauch"{ Text item=Verbrauch_aktuell Text item=Verbrauch_gesamt_Tag Text item=Verbrauch_gesamt_gestern visibility=[Verbrauch_gesamt_gestern != NULL] Text item=Verbrauch_Tag_Durchschnitt visibility=[Verbrauch_Tag_Durchschnitt != NULL] Text item=Verbrauch_gesamt_Woche visibility=[Verbrauch_gesamt_Woche != NULL] Text item=Verbrauch_letzte_Woche visibility=[Verbrauch_letzte_Woche != NULL] Text item=Verbrauch_gesamt_Monat visibility=[Verbrauch_gesamt_Monat != NULL] Text item=Verbrauch_letzten_Monat visibility=[Verbrauch_letzten_Monat != NULL] Text item=Verbrauch_gesamt_Jahr visibility=[Verbrauch_gesamt_Jahr != NULL] } Frame label="Stromkosten"{ Text item=Verbrauch_gesamt_Tag_Preis visibility=[Verbrauch_gesamt_Tag_Preis != NULL] Text item=Verbrauch_gesamt_gestern_Preis visibility=[Verbrauch_gesamt_gestern_Preis != NULL] Text item=Verbrauch_gesamt_Woche_Preis visibility=[Verbrauch_gesamt_Woche_Preis != NULL] Text item=Verbrauch_letzte_Woche_Preis visibility=[Verbrauch_letzte_Woche_Preis != NULL] Text item=Verbrauch_gesamt_Monat_Preis visibility=[Verbrauch_gesamt_Monat_Preis != NULL] Text item=Verbrauch_letzten_Monat_Preis visibility=[Verbrauch_letzten_Monat_Preis != NULL] Text item=Verbrauch_gesamt_Jahr_Preis visibility=[Verbrauch_gesamt_Jahr_Preis != NULL] } }
folgende gruppen und gruppenwerte müssen in deine persist datei.
die einträge mit und ohne * sind korrekt so, da in einigen fällen auch der gruppenwert selbst gespeichert werden sollCodeStrategies { everyMinute : "0 * * * * ?" everyhour : "0 0 0/1 1/1 * ? *" } Items { Verbrauch_gesamt*, Verbrauch_gesamt, Verbrauch_aktuell*, Verbrauch_aktuell, Verbrauchsberechnung* : strategy = restoreOnStartup, everyChange, everyhour }
falls fehler auftreten (was bei so umfangreichen berechnungen ja schnell durch tippfehler o.ä. passieren kann) ----> [definition='1','0']log[/definition] mitsendenwichtig: die rules gehen davon aus, dass deine geräte einen kwh-wert für tagesverbrauch und gesamtverbrauch liefern (wie bspw deine steckdose). solltest du ein anderes gerät in die gruppen Verbrauch_gesamt mit aufnehmen wollen prüfe zuerst ob das da ebenfalls so ist. ansonsten wird deine datenbank verfälscht. für ein gerät welche wh statt kwh liefert müsste erst eine kleine umrechnung gemacht werden.
-
Für den Gesamtverbrauch liebäugel ich im Moment mit einem IR Lesekopf. Blöderweise habe ich keine Steckdose in der Nähe des Zählers.
warum das denn? ein shelly passt in jeden sicherungskasten und es wird keine steckdose gebraucht.
-
keine ahnung was du möchtest. wenn dich dein stromverbrauch grundsätzlich interessiert, dann nutze gleich eine gesamtlösung anstatt einzelne steckdosen. bspw shelly3em. der ist mit hilfe eines elektrikers sehr unkompliziert anzubringen. dann haste du gleich deinen gesamtverbrauch im haus/wohnung.
ich will mir nur doppelte arbeit ersparen...daher die nachfrage. -
Sach Ma, hast du Langeweile? Oder warum so viele Themen? Bist du Spamer?
ist doch gut wenn er das macht. besser als 100 seiten lange threads die 100 themen beinhalten.
und bin der Meinung, dass mit dieser Einstellung die Werte aller meiner items gespeichert werden
bedenke, dass die zu speichernden items aber auch in gruppen sein müssen.
davon abgesehen, ich glaube ein * reicht nicht.....für die größe der datenbank wäre es auch besser, wenn du nicht jeden murks speicherst.
vlt steigst du auch auf eine andere datenbank um. ich persönlich finde rrd4j auch nicht sooo toll für ein smarthome system. speziell wenn man diverse sachen über längere zeit aufzeichnen will (bspw aussentemperatur) ist rrd4j bei den "zusammengefassten" datenpunkten später ziemlich doof. auch bei verbrauchsberechnungen die über einen längeren zeitraum gehen sollen.
beispiel in der persistence datei: Temperatur* speichert alle items in der gruppe temperatur. Temperatur dagegen speichert den wert der gruppe selbst. anwendungsfall wäre bspw wenn man einen durchschnittswert mit der gruppe errechnet.
also mach alle items die gespeichert werden sollen in passende gruppen, diese dann in die persistence datei.
beispiel (entferne auch bei dir "every update"...das ist einfach nicht notwendig)CodeStrategies { everyMinute : "0 * * * * ?" everyhour : "0 0 0/1 1/1 * ? *" } Items { Temperatur*, Verbrauch_gesamt* : strategy = restoreOnStartup, everyChange, everyhour }
Jetzt habe ich allerdings unüberlegt die Sicherung für den Stromkreis meines Pis ausgeschaltet und nun sind alle meine Temperatur Werte weg. Das ist jetzt nicht so richtig tragisch, aber das kann doch für wichtige Sachen nicht so gedacht sein?
bei nem pi ist das sogar extrem tragisch. das ist der erste schritt zu einer defekten sd karte und damit zu einem defekten system.
-
kurze frage...bin gerade dabei was fertig zu machen. kommen ggf noch andere steckdosen dazu und du brauchst eine gesamtübersicht aller verbraucher oder geht es nur um diese steckdose.
-
dann mach ein passendes thema auf (verbrauch/kosten darstellen/errechnen o.ä.).
morgen hätte ich zeit dafür.
willst du das ggf für mehrere geräte gleich zusammengerechnet haben? -
naja kein mensch braucht bei kwh 3 nachkommastellen. eine kommastelle reicht, um einen centgenauen betrag zu errechnen.
@horschte Du hast nicht zufällig eine Rule griffbereit, wie man die Verbrauchswerte pro Tag / Woche oder Monat berechnet und wegspeichert?
doch hab ich natürlich. dafür müsstest du diese werte aber auch in einer datenbank aufzeichen. falls du also eine datenbank nutzt, sag bescheid und ich veröffentliche was....meinetwegen auch gleich mit umrechnungen in €.
-
die anzahl der nachkommastellen werden, wie du bereits erkannt hast mit [%.Xf kWh] geändert. wobei das X mit der anzahl der gewünschten stellen ersetzt werden muss.
openhab nutzt immer einen punkt zum trennen. wenn du lieber ein komma haben möchtest, musst du bspw mit replace arbeiten. dann bräuchtest du für jedes betroffene item eine rule.
in meinen augen unsinnig.Was sind eigentlich appartent und reactive Power?
https://www.google.com/search?q=schei…sclient=gws-wiz
im idealfall liegt also dein "power factor" (leistungsfaktorkorrekturfilter) bei 1 -> scheinleistung = wirkleistung. das ist aber halt nur ein theoretisch erreichbarer wert.
unterm strich, für dich eigentlich uninteressant.
das einzige was du mal machen kannst (vorhandenes equipment vorrausgesetzt) ist die steckdose zu kalibrieren. dafür brauchst du ein messgerät um die tatsächlichen werte zu messen und einen verbraucher. je höher desto besser. dann am messgerät die aktuellen daten ablesen und mit tasmota commands an die steckdose senden (VoltageSet + CurrentSet) ...siehe:
https://tasmota.github.io/docs/Commands/#power-monitoring -
du benutzt das webif zum erstellen von things. das sieht alles ein wenig anders aus. problem ist halt auch, dass man nicht wirklich was brauchbares im netz findet. vieles bezieht sich noch auf oh 2.x, js transformation und was weiss ich noch für ne bastelei.
im grunde hab ich jetzt alles am laufen. nur der "stateTopic" fehlt mir bei color. stört mich nicht wirklich, da es ja egal ist ob beim colorpicker die aktuelle farbe angezeigt wird.notiz für mich: things
CodeThing topic Ku_Schranklicht "Ku_Schranklicht" @ "Küche" { Channels: Type switch : Ku_Schranklicht_Switch "Ku_Schranklicht Switch" [ stateTopic = "zigbee2mqtt/Hue_Stripe/state", commandTopic="zigbee2mqtt/Hue_Stripe/set/state"] Type dimmer : Ku_Schranklicht_Dimmer "Ku_Schranklicht Dimmer" [ stateTopic = "zigbee2mqtt/Hue_Stripe/brightness", commandTopic="zigbee2mqtt/Hue_Stripe/set/brightness", min="0", max="254"] Type dimmer : Ku_Schranklicht_Weiss "Ku_Schranklicht Weiss" [ stateTopic = "zigbee2mqtt/Hue_Stripe/color_temp", commandTopic="zigbee2mqtt/Hue_Stripe/set/color_temp", min="153", max="500"] Type colorRGB : Ku_Schranklicht_Color "Ku_Schranklicht Color" [ commandTopic = "zigbee2mqtt/Hue_Stripe/set", formatBeforePublish="{\"color\": {\"rgb\":\"%s,%s,%s\"}}"] }
-
-
nein , ich meinte den thing eintrag
-
Wemos + DS18B20
-
ich hole das thema nochmal hoch weil ich selbst an ner rgbw integration hänge. allerdings nutze ich eine "alte" things textconfig. alles funktioniert, ausser der dämliche color channel.
@xSaSx kannst du mir deine things config für den color channel ins alte text config format übersetzen? ich glaube, ich habe da echt ne denkblockade. ich verstehe bspw nicht, wie du da nen korrekten state bekommen kannst ohne jsonpath. ausserdem kapiere ich nicht, wo in der alten textconfig bspw colorMode: RGB hin kommt.Code- id: led_stripe_rohr_color channelTypeUID: mqtt:colorRGB label: led_stripe_rohr_color description: "" configuration: commandTopic: zigbee2mqtt/led_stripe_rohr/set colorMode: RGB formatBeforePublish: '{"color": {"rgb": "%s,%s,%s"}}' stateTopic: zigbee2mqtt/led_stripe_rohr/color
btw...das kommt bei mir im mqtt explorer an ("attribute" werte sind auch da. die erspare ich mir hier aber mal):
-
du musst mit einem openhab item den nächsten wecker auslesen, die gewünschten minuten (bspw 15) subtradieren und in ein dummy item schreiben. in einem minütlichen cron muss geprüft werden ob aktuelle uhrzeit = dummy item.
das ganze ist schon umzusetzen, allerdings in meinen augen der falsche ansatz. an deiner stelle würde ich eher dem amazon echo support auf die eier gehen als das eigene system zu verbasteln. -
ohne [definition='1','0']log[/definition] kann ich dir leider nicht helfen. nur da kann man nachvollziehen was bzw was nicht passiert. /var/[definition='1','0']log[/definition]/openhab/events.[definition='1','0']log[/definition]