Seite 2 von 2

Re: Widget mit Switch analyzer schalt zeit berechnen .

Verfasst: 19. Sep 2022 09:00
von marci-cr
vielen Dank für deine mühen. ich werde es mal versuchen. So wie Du es geschrieben hast.

natürlich währe ich dankbar für die Rules die du mir anbieten kannst.. möchte es ja auch gerne Professionell und Stabil haben und kein
unsaubere Lösung wie ich Sie bisher habe.

kann ich nicht das widget was ja soweit funktioniert (ohne Berechnungen) irgendwie weiter umschreiben das es den gewünschent efekt bringt
wie gesamte schaltzeit der steckdose und dann in Wh umrechnen.


Bis jetz bin ich mit obenhab 3 ganz gut zurecht gekommen dank Diesem Deutschen Forum und auch ein paar Englische.
Dennoch jetzt stoße ich an meine grenzen.

Re: Widget mit Switch analyzer schalt zeit berechnen .

Verfasst: 19. Sep 2022 09:53
von udo1toni
Nein, das Widget hat ja keinen Zugriff auf die Gesamtheit der Daten, sondern bindet eine bereitgestellte Grafik ein.
Den Verbrauch kann man über die Summe oder den Durchschnitt errechnen, auch die Einschaltdauer lässt sich so ermitteln, statt der Summe nehmen wir den Durchschnitt (mögliche Werte 1 oder 0 -> Durchschnitt ist das direkte Verhältnis 0 zu 1 in Prozent) und multiplizieren mit der gewünschten Zeit (also z.B. ein Durchschnitt von 0,50, mal 24h = 12 Stunden, oder mal 60*24 =720 Minuten, oder mal 240 für die Anzahl Stunden der letzten 10 Tage, wenn der Messzeitraum 10 Tage beträgt)

Re: Widget mit Switch analyzer schalt zeit berechnen .

Verfasst: 22. Sep 2022 18:40
von marci-cr
So schauen jetzt die Rules aus.

1. Rule

Code: Alles auswählen

configuration: {}
triggers:
  - id: "2"
    configuration:
      itemName: Curantee00_Curantee00
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |-
        rule "update item"
        when
            Time cron "1 * * * * ?"
        then
            if(Curantee00_Curantee00.state != ON)
                SolarTracker.postUpdate(0)
            else
                SolarTracker.postUpdate(1)
        end
    type: script.ScriptAction
2. Rule

Code: Alles auswählen

rule "get sum"
when
    Time cron "2 * * * * ?"
then
    Anzeige24h.postUpdate(SolarTracker.sumSince(now.minusDays(1)))
    Anzeige7d.postUpdate(SolarTracker.sumSince(now.minusDays(7)))
end

und den Code vom Item (SolarTracker) kann ich über die UI nicht anzeigen lassen.
habe auch schon versucht es manuel im Dateisystem zu finden. leider ohne Erfolg.
evtl habe ich ja im SolarTraker Item ein fehler.


Mfg

Re: Widget mit Switch analyzer schalt zeit berechnen .

Verfasst: 22. Sep 2022 23:15
von udo1toni
Ich wiederhole mich ja nur ungern, aber:

Ich habe es ganz oben erklärt:

Eine DSL Rule für das Dateiformat hat einen Rahmen.
Der Rahmen besteht aus dem Schlüsselwort rule, gefolgt vom Namen der Rule,
gefolgt vom Schlüsselwort when, gefolgt von der Auflistung aller Trigger für diese Rule,
gefolgt vom Schlüsselwort then, gefolgt vom gesamten Rule Code, der ausgeführt wird,
gefolgt vom Schlüsselwort end.
Da Du den Rule Namen über die UI eingibst, und ebenso die Trigger über die UI eingefügt werden, dürfen diese Worte nicht mit im Rule Code stehen!
Also bitte so:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "2"
    configuration:
      itemName: Curantee00_Curantee00
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |-
        if(Curantee00_Curantee00.state != ON)
            SolarTracker.postUpdate(0)
        else
            SolarTracker.postUpdate(1)
    type: script.ScriptAction
und so:

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      cronExpression: 0 0 8 * * ? *
    type: timer.GenericCronTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |-
        Anzeige24h.postUpdate(SolarTracker.sumSince(now.minusDays(1)))
        Anzeige7d.postUpdate(SolarTracker.sumSince(now.minusDays(7)))
    type: script.ScriptAction

Re: Widget mit Switch analyzer schalt zeit berechnen .

Verfasst: 27. Sep 2022 12:42
von marci-cr
Vielen Dank.

jetzt funktioniert es wie es sollte.

Bis auf die Wattsunden zu berechenen. da werde ich mich mal weiter versuchen schlau zu machen wie ich das mache.
mit 0 = aus 1 = an die zeiten zusammen zufassen, da ich jetzt weiß das Gerät 78min zustand 1 (AN) hat.
einfach mal hier im forum suchen. Gibt bestimmt einige die vergleichbare formeln, rules nutzen.

auch besten dank für deine Mühe und Geduld.
hab leider noch nicht so die Erfahrung.

MFG

Marci-CR