Seite 1 von 2
OH3 Blockly
Verfasst: 5. Feb 2021 21:01
von lenschith
Hallo Zusammen,
ich versuche eine mathematische Rule aus OH2 in OH3 mit Blockly umzusetzen aber ich schaffe es nicht.
Hat jemand eine Idee wie ich das umsetzen muss.
OH2:
Code: Alles auswählen
PiHole_DnsQueriesToday.postUpdate(((PiHole01_DnsQueriesToday.state as Number)+(PiHole02_DnsQueriesToday.state as Number)).intValue)
PiHole_AdsBlockedToday.postUpdate(((PiHole01_AdsBlockedToday.state as Number)+(PiHole02_AdsBlockedToday.state as Number)).intValue)
PiHole_AdsPercentageToday.postUpdate((100/(PiHole_DnsQueriesToday.state as Number)*(PiHole_AdsBlockedToday.state as Number)).intValue)
PiHole_UniqueDomains.postUpdate(((PiHole01_UniqueDomains.state as Number)+(PiHole02_UniqueDomains.state as Number)).intValue)
PiHole_QueriesForwarded.postUpdate(((PiHole01_QueriesForwarded.state as Number)+(PiHole02_QueriesForwarded.state as Number)).intValue)
PiHole_QueriesCached.postUpdate(((PiHole01_QueriesCached.state as Number)+(PiHole02_QueriesCached.state as Number)).intValue)
PiHole_ClientsEverSeen.postUpdate(((PiHole01_ClientsEverSeen.state as Number)+(PiHole02_ClientsEverSeen.state as Number)).intValue)
PiHole_UniqueClients.postUpdate(((PiHole01_UniqueClients.state as Number)+(PiHole02_UniqueClients.state as Number)).intValue)
OH3:
Screenshot 2021-02-05 205748.png
Ich dachte ich muss in den Math Block "get item state" verwenden, aber der Block lässt sich nicht verwenden.
Was mache ich falsch?
Gruß Lenschi
Re: OH3 Blockly
Verfasst: 6. Feb 2021 09:41
von am66798
Hallo Lenschi,
ich kann nichts falsches erkennen.
Hier ein kleines Beispiel von mir. Die letzte "post update" Anweisung habe ich als Beispiel für dich in den if-do-Block eingefügt.
(Erstellt mit openhabian auf einem Pi4)
Gruß Andreas
Blocklybeispiel.PNG
Re: OH3 Blockly
Verfasst: 6. Feb 2021 09:54
von lenschith
mmh,
was kann da noch falsch sein bei mir.
Ich erhalte im Log immer diese Meldung:
Code: Alles auswählen
==> /var/log/openhab3/openhab.log <==
2021-02-06 09:48:02.692 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule 'pihole': Fail to execute action: 4
So sieht meine Rule im Code aus:
Code: Alles auswählen
var logger = Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' + ctx.ruleUID);
if ('pihole01_Werbunggeblocktheute' >= '1') {
events.postUpdate('pihole_Werbunggeblocktheute', ('pihole01_Werbunggeblocktheute' + 'PiHole02_Werbunggeblocktheute'));
logger.info('pihole cluster data');
}
Getriggert wird Sie über einen CRON Job alle 10Sek.
Die Items sind alle als Number deklariert.
Screenshot 2021-02-06 095239.png
Wenn ich eine einfache Rechnung mache wird das Item auch befüllt
Code: Alles auswählen
if ('pihole01_Werbunggeblocktheute' >= '1') {
events.postUpdate('pihole_Werbunggeblocktheute', (1 + 1));
logger.info('pihole cluster data');
}
Hat noch jemand eine Idee was ich hier falsch gemacht habe und wo das hängt
Gruß Lenschi
Re: OH3 Blockly
Verfasst: 6. Feb 2021 10:22
von am66798
Hallo Lenschi,
ich bin blutiger Anfänger, in allen Disziplinen!
Ich befasse mich mit openHAB erst seit September 2020 und bin gestern von OH 2.5.11 auf 3.0.1 umgestiegen.
Den Modbus zu konfigurieren dauerte schon einige Zeit. Anschließend habe ich dann angefangen mit Blockly die erste Rule umzusetzen.
Leider kann ich das Ergebnis noch nicht sehen. Sieht so aus, als wenn die Rule noch nicht durchlaufen wird.
Ich mach jetzt zuerst mal eine Radtour und heute Nachmittag geht's dann weiter.
Gruß Andreas
Re: OH3 Blockly
Verfasst: 6. Feb 2021 11:21
von lenschith
Ich muss noch erwähnen das ich OH3 Milestone verwende
Re: OH3 Blockly
Verfasst: 6. Feb 2021 12:59
von lenschith
Also wenn ich die Items in Variable schiebe dann klappt es. Ist das normal?
Oder wo hängt das.
Screenshot 2021-02-06 125848.png
Re: OH3 Blockly
Verfasst: 6. Feb 2021 13:10
von am66798
Ich wundere mich über die graue Farbe der 2 Blöcke.
Außerdem kann ich nicht erkennen wo du ein Item in eine Variable schiebst.
Re: OH3 Blockly
Verfasst: 6. Feb 2021 13:15
von lenschith
die grauen sind disabled, damit die nicht verarbeitet werden. Die zwei ersten Blöcke sind die Variablen.
Kann es sein das in
OH3Milestone es nicht mehr möglich ist "get item state" im
Mathblock zu verwenden?
Ich kann diese leider im Math nicht verknüpfen. Die rasten dort nicht ein
Hier wurde das so beschrieben das es mit "get item state" funktioniert
viewtopic.php?f=15&t=4574&p=30431#p30431
Kann das jemand bestätigen?
Re: OH3 Blockly
Verfasst: 6. Feb 2021 15:18
von am66798
Zum Verständnis: du möchtest den get item Block in den blauen Math-Block schieben und dieses Konstrukt in den openHAB-Block schieben?
Blocklybeispiel2.PNG
Das funktioniert bei mir auch nicht!
Re: OH3 Blockly
Verfasst: 6. Feb 2021 15:38
von lenschith
Genauso dachte ich es muss es sein, damit ich mit den Werten rechnen kann.
So war es in OH2
Code: Alles auswählen
PiHole_DnsQueriesToday.postUpdate(((PiHole01_DnsQueriesToday.state as Number)+(PiHole02_DnsQueriesToday.state as Number)).intValue)
Wenn ich einfach das Item verwende, kann ich nicht rechnen. Dann kommt die besagte Fehlermeldung. Wenn ich die Variable mit "get item state" befülle kann ich auch rechnen.
Bin gerade etwas Ratlos wie ich das umsetzen soll und warum du mit den Items rechnen kannst. Ich habe bei mir einige verschiedene Items versucht und habe bei allen das selbe Problem. Was ist bei mir der unterschied zu deiner Rule/Items?
Gruß Lenschi