NEWS
Monitoring Haustechnik für Dummies
-
@Mac:J
Ein erstes „Wunsch“ Balkendiagramm wäre also eine Aufsummieren des Gasverbrauches pro Tag. Die Datenpunkte habe ich im KNX vorliegen, möglich ist auch diese aus dem Loxone Server zu nehmen. Im Anhang eine Übersicht meiner Datenpunkte.
Was meint Ihr? `
Jetzt lass uns doch mal klein anfangen :), also mit dem gaszahler. Wen ich es richtig verstehe hast du einen KNX wert mit gesamtverbrauch (nicht den tagesverbrauch ?)
Dazu muessten wir:
-
Javascript adapter ein script erstellen welches jeden tagen (z.b. um 23.58) de gesamtverbrauch minus den wert gesamtverbrauch gestern in ein object schreibt
-
diese object aufzeichnen mit einen datenlog adapter, dafuer haben wir history (file) oder SQL (ich empfehle SQL) http://www.iobroker.net/docu/?page_id=144&lang=de
-
brauchen wir flot um diese gespeicherten daten in eine grafik wieder zu geben http://www.iobroker.net/docu/?page_id=198&lang=de
-
(wen gewollt) benutzen wir Vis in bauen hier diese grafiek ein als iFrame
Das script, zur leichtigkeit mal in blockly, dazu koennte so aussehen. Ich erstellen ein object wo ich den verbauch von gestern speichere (sorry zu spaet gemerkt, das sollte natuerlich verbrauch heite sein….)
Dan wir jeden tag um 23.58 der gesamtverbrauch - verbrauch aus diesem object in die variable geschrieben.
Wen du das object dan aufzeichnist hast du jeden tag um 23.58 deinen tagesverbrauch abgespeicher:
Und hier der block zum importieren:
! ````
!
! Scripts
! Domoticz
Test_Domotics
Testing
Library
Harmony 0
! OLD_*_RFXCOM_Schakeling 0
! Read_State 0
! Script1 0
! function 1
! mail_Adapter_inaktief 0
! mail_blockly 0
! split 0
! testtrigger 0
! verbrauchsdaten 0
! *Create_Heating_States_DB 0
! Calculation 0
! CountDown 1
! Forum_Hilfe_Scene 0
! Heating_Regulator 0
! Logitech Harmony 0
! MQTT_restart 0
! MQTT_restart_2 0
! Pi_Spelen 0
! Script1 0
! Script3 0
! Script4 0
! Script5 0
! Vbus_4 2
! Verwarming_Test 0
! WOL 0
! Zeitschaltung 0
! _test_Read_Domitcz_Objects 0
! bus_reader 1
! dunkel 1
! ifttt_end 0
! ikea lamp debug 0
! vbus 1
! vbus_test 1
! vbus_test_2 1
! common
Heating
Astrozeiten 0
! CV_Temp_Control 0
! Deurbel 0
! Huehner 0
! Light_Automations 0
! Low_Bat 0
! Script1 0
! ServiceMessages 0
! Tuin_Sproeien 0
! global
KNX_Rolladen 1
! Script1 0
! Script2 0
! Script4 1
! name
verbrauchsdaten
Debug Verbose engine type
! Save
! Cancel
! Check blocks
! Show code
! Cron
! Insert ID
create state
verbrauch gestern
schedule
58 23 * * *
сontrol
Object ID
with
with delay- ▾
Value ▾
of Object ID
verbrauch gestern
Value ▾
of Object ID
Volumengesamt_raw
test
debug output
info ▾
comment
сontrol
Object ID
with
with delay
toggle
Object ID
with delayupdate
Object ID
with
with delayValue ▾
of Object ID
select ID
Value ▾
of Object ID
select ID
Object ID
default
Object ID
Object ID 1
Object ID
Object ID 2
bind
with
only changes✓
Object ID
Object ID
true ▾
0
write
Object ID
сontrol ▾
value
delay in ms
clear runningcreate state
jsState
Log! Control state
System
Actions
Sendto
Date and Time
Convert
Trigger
Timeouts
Logic
Loops
Math
Text
Lists
Colour
Variables
Functions
Export selected blocks
! <xml xmlns="http://www.w3.org/1999/xhtml"><block type="create" id="NeehP^M4N+sA6K@!ocIF" x="-137" y="13"><field name="NAME">verbrauch gestern</field>
<statement name="STATEMENT"><block type="schedule" id="@OTQ8|opdysUYg5|oyl"><field name="SCHEDULE">58 23 * * </field>
<statement name="STATEMENT"><block type="control" id="p0WhRCOk].I!nDWP)HE"><mutation delay_input="false"></mutation>
<field name="OID">Object ID</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="math_arithmetic" id="~NFvm4I/ftJ,?oL/?k}Y"><field name="OP">MINUS</field>
<value name="A"><shadow type="math_number" id="+SW!gwBg/f(Vb]`vFU}"><field name="NUM">1</field></shadow>
<block type="get_value" id="HcOTG1MDi{Jdhu|!hbB"><field name="ATTR">val</field>
<field name="OID">javascript.2.vbus.00_1011_0010.values_raw.Volumengesamt</field></block></value>
<value name="B"><shadow type="math_number" id="iGwY92LpB3JLh2o8=4KW"><field name="NUM">1</field></shadow>
<block type="get_value" id="sD.1ncud=kCD05ZJWj;"><field name="ATTR">val</field>
<field name="OID">javascript.0.verbrauch gestern</field></block></value></block></value></block></statement></block></statement></block></xml>Cancel
! ````
-
-
Danke Dutchman erst einmal für die schnelle Antwort.
In Blackly habe ich (glaube ich die richtigen Tools gefunden, das in der Subtraktion dann die zwei Wertet einzufügen sind, dafür habe ich ein buchen gebraucht. Das Ergebnis im Anhang in der D Version.
- diese object aufzeichnen mit einen datenlog adapter, dafuer haben wir history (file) oder SQL (ich empfehle SQL)
Jetzt fehlt mir das Verständnis wie ich den Datenlog Adapter nutze, die SQL Datenbank ist installiert, wie aber erzeuge ich jetzt den Datenlog, bzw die Variable.
Das muss ja erst einmal stimmen, bevor ich dann frage, wohin kommt denn dann Dein langes Skript?
4489_bildschirmfoto_2017-12-15_um_16.34.39.png -
Probieren geht über …
Versteh ich es jetzt richtig: ich muß den Skript aktivieren, dann in Objekte den "Gaszähler" ganz rechts das Zahnrad die Aufzeichnung aktivieren in SQL. Dann erscheint auch unter javascript/script enabled mein Script Gaszähler. Diesen kann ich dann in dem Script auswählen. Soweit richtig?
4489_bildschirmfoto_2017-12-15_um_17.02.32.png -
Ich bin wirklich willig zu lernen und zu lesen, aber ich komme einfach nicht weiter, irgendwie klappt die Datenaufzeichnung nicht, im LOG kommen immer Fehlermeldungen, siehe Anhang.
-
Bin heute Abend wieder am PC und werde Hilfestellung leisten
–-----------------------
Send from mobile device
-
Danke! Jetzt habe ich das Blockkly Script noch einmal gemacht, es sieht zumindest jetzt so aus wie Deine Vorlage, aber irgendetwas stimmt mit der Installation SQL nicht, usw.
Hier noch einmal mein letzter Versuch. Gibt es die Möglichkeit per TeamViewer Dir die Schreibarbeit zu ersparen, ich würde dann meine Fehler im Forum dokumentieren?
-
Hinter "steuere" hast du noch deinen Datenpunkt nicht ausgewählt. (Verbrauch_gesamt????)
Gruß
Rainer
-
@Mac:Gibt es die Möglichkeit per TeamViewer Dir die Schreibarbeit zu ersparen, ich würde dann meine Fehler im Forum dokumentieren?
filename="Bildschirmfoto 2017-12-16 um 12.50.36.png" index="0">~~ `Unter den Vorwand das du es füe die Gemeinde dokumentierst bin ich dazu bereit [emoji6]
Mit dem sql, hast du überhaupt einen sql Server laufen und den Adapter richtig konfiguriert?
–-----------------------
Send from mobile device
-
Die Erkenntnisse werde ich sehr gern ausführlich dokumentieren, versprochen.
Hier die Einrichtung des SQL Servers
Erst hatte ich ihn unter SQLite3, da ging es auch nicht, daher habe ich ihn jetzt so eingerichtet. Ich bin nicht im Hause, daher dachte ich diese Version zu probieren.
-
Ok lass uns das dann Mal weiter port tv klären
Hast du telegram? Dann Mal bitte PN mit den Daten können wir uns verabreden
–-----------------------
Send from mobile device
-
Hinter "steuere" hast du noch deinen Datenpunkt nicht ausgewählt. (Verbrauch_gesamt????)
@ Rainer, danke für den Hinweis: eigentlich müßte der Datenpunkt ja "Verbrauch heute" heißen, aber (ich Dummie) wie erzeuge ich den? Kann ich in Skripte einfach einen leeres Skript mit diesem Namen anlegen, in den dann der Tagesverbrauch geschrieben wird? Das Script starten, in Objekte die Speicheung starten? Fragen über Fragen ….
Der Anfang ist echt schwer, ich hoffe sehr, wenn ich das Procedere verstanden habe, dass ich dann gut zurecht komme.
-
Jetzt bin ich ein Stück weiter, dank Dutchmans geduldiger Hilfe (vielen, vielen Dank) habe ich mein erstes Blockly Script hinbekommen.
Das Script holt und speichert die für mich wichtigen relevanten Daten der Haustechnik, es berechnet die laufenden Kosten des Tages und von gestern.
Gemäß meiner Zusage habe ich eine kleine Anleitung des bis jetzt gelernten angefertigt, so etwas hätte mir am Anfang sehr geholfen. Sollte noch ein Fehler darin sein, freue ich mich auf Verbesserungsvorschläge.
-
Nun habe ich gleich schon wieder eine Frage, mein erstes Flot Chart soll die Kosten von Gestern und sowie die laufenden von Heute sowie deren Verbräuche darstellen.
Die laufenden Tagesdaten lassen sich nur hintereinander dargestellen, was muß eingestellt werden um nur eine entsprechend wachsende Säule zu Erzeugen, die neben dem Vortagesverbrauch steht??
-
Probiere Mal:
-
eine 2te Axe hinzufügen mit gleichen Daten
-
auf das Zahnrad drücken
-
Offset einstellen
–-----------------------
Send from mobile device
-
-
Du meintest wahrscheinlich 2te Linie, das habe ich gemacht mit den gleichen Einstellungen, zweite und unterste Linie.
Rechts auf das Zahnrad gedrückt, dann kommen die Einstellungen mit dem Offset usw. aber, siehe Bild, es ändert sich leider nichts.
-
In meinem Blockly zur Aufzeichnung der heutigen und gestrigen Werte möchte ich nun auch die Werte der Woche, Monat und Jahr speichern. Nun möchte ich das Script nicht immer wieder kopieren und für jeden Wochentag usw. Objekte anlegen, wie kann ich die Tageswerte in einer Variablen aufaddieren und dann am Ende der Woche in einen Wochenspeicher schreiben?
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="comment" id="M#4[Hho1JFKhWZp,GJU" x="-687" y="-1337"><field name="COMMENT">Nur einmalig aktivieren</field>
! <next><block type="create" id="M+1O8=SRZLcz=^0Fpv/" disabled="true"><field name="NAME">Allgemeinstrom Verbrauch Gestern</field>
! <statement name="STATEMENT"><block type="create" id="OH%id#ZR=r3-!#g!SRJ;"><field name="NAME">Allgemeinstrom Verbrauch Heute</field>
! <statement name="STATEMENT"><block type="create" id="VF0-zowE4uvi%:]Pz}3" disabled="true"><field name="NAME">Allgemeinstrom Tageskosten</field> ! <statement name="STATEMENT"><block type="create" id="(xTb3{fAyc#}AJOQ_E9q" disabled="true"><field name="NAME">Allgemeinstrom Kosten Gestern</field> ! <statement name="STATEMENT"><block type="create" id="4#lUoZOf^_n=.dAVbbC:" disabled="true"><field name="NAME">Allgemeinstrom Kosten Woche</field></block></statement></block></statement></block></statement></block></statement></block></next></block> ! <block type="schedule" id="{qM-ks*Va^)sPa*w2WYS" x="-612" y="-1112"><field name="SCHEDULE">58 23 * * *</field> ! <statement name="STATEMENT"><block type="control" id="U!z),lw57CpZDU?ESf;p"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.Allgemeinstrom Kosten Gestern</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="math_arithmetic" id="_YgS59{fdC0gc}@D3eat"><field name="OP">MULTIPLY</field> ! <value name="A"><shadow type="math_number" id="XnnLA523cdq}wivNDn(w"><field name="NUM">1</field></shadow> ! <block type="get_value" id="Dy-5=c3-PbJ:+m/:o}pS"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Allgemeinstrom Verbrauch Heute</field></block></value> ! <value name="B"><shadow type="math_number" id="x=P;1.[]DPNI:/:F{J/@"><field name="NUM">0.26</field></shadow></value></block></value> ! <next><block type="control" id="F^h%svIM
-N-fcB+tb9"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.Allgemeinstrom Verbrauch Gestern</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="get_value" id="R@mUQwZ2nv3JU05v:pwW"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Allgemeinstrom Verbrauch Heute</field></block></value> ! <next><block type="comment" id="jLpDd
/}YTKoG!hG0-m"><field name="COMMENT">Schreibe jetzigen Gesamtverbrauch in das object gestern</field>
! <next><block type="timeouts_settimeout" id="b6lGW]+HFuDWoQ)PHZR}"><field name="NAME">timeout</field>
! <field name="DELAY">2</field>
! <field name="UNIT">sec</field>
! <statement name="STATEMENT"><block type="control" id="6Y.i~xM+Tj1{6H_1Xw0S"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Allgemeinstrom Zähler Gestern 23:58</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="get_value" id="YTjvhH;V?HXvUQ@7I[,"><field name="ATTR">val</field> ! <field name="OID">knx.1.Heizungskeller.Allgemeinzähler.Zählerstand_Allgemeintromzähler_kW</field></block></value></block></statement></block></next></block></next></block></next></block></statement> ! <next><block type="on_ext" id="GDsh[RFwi:YU21IE0S!{"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="W1*x0xh{oa_IQ|p_QY?r"><field name="oid">knx.1.Heizungskeller.Allgemeinzähler.Zählerstand_Allgemeintromzähler_kW</field></shadow></value> ! <statement name="STATEMENT"><block type="comment" id="#-DVjZg3[uN/jQ=n^#3k"><field name="COMMENT">Kommentar</field> ! <next><block type="control" id="[bG2;2:WG(C|.ZI+-O3F"><mutation delay_input="false"></mutation> ! <field name="OID">javascript.0.Allgemeinstrom Verbrauch Heute</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="math_arithmetic" id="Y;e)PDXwAWUwW-.aeG38"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="oRU0k3f3~(o3:AP]@(0H"><field name="NUM">1</field></shadow> ! <block type="get_value" id=":|r;6T.zLyLYWiDVC%j("><field name="ATTR">val</field> ! <field name="OID">knx.1.Heizungskeller.Allgemeinzähler.Zählerstand_Allgemeintromzähler_kW</field></block></value> ! <value name="B"><shadow type="math_number" id="4c?(@.=(o^^pbcBwpJy_"><field name="NUM">1</field></shadow> ! <block type="get_value" id="d*hoi_|D;%+s=Ysl.kDV"><field name="ATTR">val</field> ! <field name="OID">javascript.0.Allgemeinstrom Zähler Gestern 23:58</field></block></value></block></value> ! <next><block type="comment" id="j!PNZMwfbx|=*+E}S-*-"><field name="COMMENT">Kommentar</field> ! <next><block type="control" id="xgxm+dClhrR@7b9
q!,S"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Allgemeinstrom Tageskosten</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="math_arithmetic" id="oM?r2G@v6kIe6#5]T(CY"><field name="OP">MULTIPLY</field>
! <value name="A"><shadow type="math_number" id=".UX^qZqZfRTepn?U=38"><field name="NUM">1</field></shadow> ! <block type="get_value" id="ReF
-M!FKJS=wDV))_~"><field name="ATTR">val</field>
! <field name="OID">javascript.0.Allgemeinstrom Verbrauch Heute</field></block></value>
! <value name="B"><shadow type="math_number" id="%;v:ZDxEIk6;LZ(eNw^I"><field name="NUM">0.26</field></shadow></value></block></value></block></next></block></next></block></next></block></statement></block></next></block>
! <block type="debug" id="u(GJZq-u-4_tVdP!Y]a(" x="-537" y="-512"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="oufp0lJiI;~]L.-(gIQ"><field name="TEXT">test</field></shadow> ! <block type="get_value" id="^7yA]X=k?[#=?X[}6txJ"><field name="ATTR">val</field> ! <field name="OID">knx.1.Heizungskeller.Allgemeinzähler.Zählerstand_Allgemeintromzähler_kW</field></block></value> ! <next><block type="debug" id="u^bL]Wic~U.z#ADI~rWH"><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="h~Z6n))hbFb9fVp++j
%"><field name="TEXT">Stromwert Heute neu berechnet</field></shadow></value>
! <next><block type="debug" id="hJ2(dr#Dp9Oq4){X*P."><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="^)#Z7DQ*^SmA%qY09up."><field name="TEXT">test</field></shadow> ! <block type="text_join" id="RU^QRY3!cbE9~{2I~SA="><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="DgPF:|;f{Vg(UJGj~Pcm"><field name="TEXT">Wert aktuell :</field></block></value> ! <value name="ADD1"><block type="get_value" id="un[KgBA50)WT-j(Gi|Ct"><field name="ATTR">val</field> ! <field name="OID">knx.1.Heizungskeller.Allgemeinzähler.Zählerstand_Allgemeintromzähler_kW</field></block></value></block></value> ! <next><block type="debug" id=";n]AZOOdYo=:FE.+kFT("><field name="Severity">log</field> ! <value name="TEXT"><shadow type="text" id="^)#Z7DQ*^SmA%qY09up."><field name="TEXT">test</field></shadow> ! <block type="text_join" id="Qb}W6}dni=*%-ph=:rHu"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="1**yM2r|eh{;LTzFecJ*"><field name="TEXT">Wert Gestern :</field></block></value> ! <value name="ADD1"><block type="get_value" id="ollFX_Am8_ha
fyzjo75"><field name="ATTR">val</field>
! <field name="OID">javascript.0.Allgemeinstrom Verbrauch Gestern</field></block></value></block></value>
! <next><block type="debug" id="75f37OFB)@G8z_Fxe4S"><field name="Severity">log</field>
! <value name="TEXT"><shadow type="text" id="q8C~}MQ!UE|(4_ngM!X"><field name="TEXT">Allgemeinstromverbrauch heute</field></shadow> ! <block type="text_join" id="jNg?!2I^eOyB.W9jI/|O"><mutation items="2"></mutation> ! <value name="ADD0"><block type="text" id="piu
ymVU3t{].d|+EmR"><field name="TEXT">Allgemeinstromverbrauch heute</field></block></value>
! <value name="ADD1"><block type="math_arithmetic" id="1Wuorb6C=;Mn-LDG/SF"><field name="OP">MINUS</field> ! <value name="A"><shadow type="math_number" id="oRU0k3f3~(o3:AP]@(0H"><field name="NUM">1</field></shadow> ! <block type="get_value" id="
Dc/~!6[,T4o4sx])q9Q"><field name="ATTR">val</field>
! <field name="OID">knx.1.Heizungskeller.Allgemeinzähler.Zählerstand_Allgemeintromzähler_kW</field></block></value>
! <value name="B"><shadow type="math_number" id="4c?(@.=(o^^pbcBwpJy_"><field name="NUM">1</field></shadow>
! <block type="get_value" id="QJ`XYpE%/rWJwcXCeC+)"><field name="ATTR">val</field>
! <field name="OID">javascript.0.Allgemeinstrom Zähler Gestern 23:58</field></block></value></block></value></block></value></block></next></block></next></block></next></block></next></block></xml>
4489_bildschirmfoto_2017-12-22_um_15.17.32.png -
Hat wirklich niemand eine Hilfe für mein Problem?