NEWS
"unabhängigen" Datenpunkt anlegen
-
Hallo,
gibt es eine Möglichkeit, einen Datenpunkt mit selbst definierten Feldern anzulegen?
Diese möchte ich dann mit einem Script füllen und an influxdb2/Grafana übergeben. -
@dgr sagte in "unabhängigen" Datenpunkt anlegen:
gibt es eine Möglichkeit, einen Datenpunkt ... anzulegen?
ja, aber was meinst du mit
@dgr sagte in "unabhängigen" Datenpunkt anlegen:
einen Datenpunkt mit selbst definierten Feldern
-
@dgr
Du kannst eigene States unter 0_userdata.0 anlegen (manuell oder per Script), diese mit einem Script befüllen und dann damit machen was du willst (incl. archivieren in z.B. influxdb) -
@mcm1957
ich hatte gehofft, dass ich zusätzlich zu Timestamp und Value weitere Felder anlegen kann, z.B. Textfelder. -
@dgr sagte in "unabhängigen" Datenpunkt anlegen:
weitere Felder anlegen kann, z.B. Textfelder.
nochmal:
was meinst du genau damit?Soll der Wert verschiedene Textfelder enthalten?
meinst du z.b. common.name als Textfeld.Schreib doch mal ein Beispiel was du dir vorstellst.
-
@homoran
so sehen die Verlaufsdaten eines Datenpunktes jetzt aus:
Ich möchte gerne zusätzlich zu Timestamp, Wert, Ack, Quelle noch mindestens ein Feld "Ort" haben.
-
@dgr sagte: zusätzlich zu Timestamp und Value weitere Felder
Die Eigenschaften eines Datenpunktes sind vorgegeben. Zusätzlichen Text kann man an den Kommentar (state.c) übergeben. Wird allerdings nicht historisiert.
Konstante Texte kann man bei Erstellung des DP in common.desc schreiben. -
das was @paul53 schreibt, oder du bastelst dir so was
wobei da noch Formatierung drin sind
-
@dgr
Prinzipiell kann ein State auch json Daten enthalten und diese hosroridiert werden. Damit kanbst beliebig Daten zusammenfassen.Ob das in grafana irgendwie sinnvoll auswertbar ist weiss ich allerdings nicht.
-
@mcm1957 sagte in "unabhängigen" Datenpunkt anlegen:
Prinzipiell kann ein State auch json Daten enthalten
darauf ob das passen würde hab ich noch keine Antwort bekommen
@homoran sagte in "unabhängigen" Datenpunkt anlegen:
Soll der Wert verschiedene Textfelder enthalten?
-
So ganz sicher bin ich mir nicht, dich richtig verstanden zu haben. Vielleicht hilft dir dieses Beispiel weiter, in dem ich in einem Datenpunkt ein ganzes ECharts-Diagramm in einen Datenpunkt speichere (siehe stringify) und andererseits aus diesem auch wieder auslese (siehe JSON.parse), um im RAM dieses Diagramm als Objekt anzulegen. Darüber hinaus findest du in diesem Beispiel ausgeführt, wie man auf Eigenschaften/Felder eines Datenpunktes zugreifen kann.
-
Ich hab eine zeitlang mal einen 2. eigene "Konstanten"-DB gehabt(per Skript, selbst gefüllt), die hat name, desc, room und Datenpunkt ID gespeichert und in grafana hab ich das wieder zusammengebastelt, aber ist zulange her, das ich noch weiß wie ich das gemacht habe.
-
@legro
dein Beispiel finde ich beachtlich. Allerdings sind meine Kenntnisse leider nicht so, dass ich auf diesem Niveau etws zustande bringen könnte.
Mein Ziel war es, in Grafana eine aktuelle und kompakte Übersicht (alle 5 sec.) über den Zustand der Fenster und Türen (auf/zu) zu haben. Gegenwärtig sagt mir ein Script nur, ob es zu einem definierten Zeitpunkt noch offene Fenster/Türen gibt.
Ich habe jetzt für mich eine "Lösung" gefunden, allerdings nicht sehr elegant. Ich registriere für jedes zu überwachende Objekt den Zustand alle 5 Sekunden und zeige dann in Grafana den letzten Wert in einem Dashboard an (also für jedes Objekt auch ein Dashboard. Diese fasse ich dann in einem großen Dashboard zusammen. Das ist natürlich alles äußerst umständlich, aber ich sehe in ioBroker keine Möglichkeit, die Objektbezeichnung mitzugeben (zusätzliches Feld zum zugehörigen Wert siehe Ausgangsfrage).
Im Momen mit nur 3 Fenstern sieht das so aus:
-
Grafana bloß mit der Anzeige von Zuständen zu befassen, wird diesem Programm nicht gerecht, ist es doch für ganz andere Dinge entwickelt worden. Verwendest du keine Visualisierung? Hier könntest du dein Anliegen vermutlich mit einem Federstrich abtun.
Hier ein Beispiel, wie ich via Blockly mich über offene Fenster informieren lasse ..
Immer dann, wenn ich die Haustüre zum Verlassen unseres Hauses öffne, bekomme über Pushover die Nachricht, die mich über noch offene Fenster benachrichtigt. Und hier der Export des Skriptes ..
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="mw5Sq5;2#c]Cjv:HvDqW">FensterID</variable> <variable id="RDW%jsRqulQ14_Ma;+.6">FensterName</variable> <variable id="/jS=J@*xZwKprot(yu(4">Anzahl</variable> <variable id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</variable> <variable id="_Q5q[O$w$4z?Y^m(i1k/">Fenster</variable> </variables> <block type="comment" id="_T[*?y(e?W=EtN;+=~ZR" x="-1338" y="-1513"> <field name="COMMENT">FUNKTION FensterID -> Name</field> </block> <block type="comment" id=".`6BmVMJJl%^}w7=F.yj" x="-787" y="-1512"> <field name="COMMENT">Überwachung der Haustüre, ob sie offen ist</field> <next> <block type="on" id="z6*u:j2Yf$5:^ypFm90A"> <field name="OID">hm-rpc.0.MEQ1595158.1.STATE</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="comment" id="w^}3?.+JMQSW]__Q~9jv"> <field name="COMMENT">Die Haustüre soll nicht mitgezählt werden</field> <next> <block type="variables_set" id="W}G(1BH!e,N-AF57+lY{"> <field name="VAR" id="/jS=J@*xZwKprot(yu(4">Anzahl</field> <value name="VALUE"> <block type="math_number" id="Za2F861M92Kh12+8sRw3"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="EZ(ZC!gIbun[!1-h~;6I"> <field name="VAR" id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</field> <value name="VALUE"> <block type="text" id="as:g$@73c#;!+]D1iqCg"> <field name="TEXT"></field> </block> </value> <next> <block type="controls_if" id="La8j/V(OM+?9A3)f2Svk"> <value name="IF0"> <block type="logic_compare" id=":O{$Xwu7k95(!IsIUD2W"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="@;LKH=^yO1;eNaRXk__Q"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="K]5r@7{R$I%=C{3lIbi("> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="i94H}^L~$K,V4}|}V/f|"> <field name="COMMENT">Wenn Datenpunkt "Rauch" = true, dann ..</field> <next> <block type="controls_forEach" id="W#O|I2M}N+!SEaXQfE;@"> <field name="VAR" id="_Q5q[O$w$4z?Y^m(i1k/">Fenster</field> <value name="LIST"> <block type="selector" id="KYB3/56S@+*Z!^/P?9Fw"> <field name="TEXT">(functions= fensterstatus)</field> </block> </value> <statement name="DO"> <block type="comment" id="DsZ^e:GTut:s^1wfbEZ["> <field name="COMMENT">Jedes Fenster überprüfen</field> <next> <block type="controls_if" id="v-93Ow]!C{6NWhduTPHB"> <value name="IF0"> <block type="logic_compare" id="8u)_v:v{Os.CkXvfret["> <field name="OP">EQ</field> <value name="A"> <block type="get_value_var" id="}r@q[FATWlmH`!gT*SQA"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="^^fToO7==dqY]41D*,9_"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="Jq+E~0jU8Na^Pn!(s12I"> <field name="VAR" id="_Q5q[O$w$4z?Y^m(i1k/">Fenster</field> </block> </value> </block> </value> <value name="B"> <block type="logic_boolean" id="H=B=Q7rp*MbkjgMs@;d;"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="@*XD=rS6DezFs75$#OxK"> <field name="VAR" id="/jS=J@*xZwKprot(yu(4">Anzahl</field> <value name="DELTA"> <shadow type="math_number" id=",T0~x*]54/oxzID!+,pi"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="}dHH5k+lI:dFBP1nCZ=I"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="V%/e(advliM?hm7F8*Er"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="#mZh-O,*^^Hew/f}qf|L"> <field name="VAR" id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</field> </block> </value> <value name="B"> <block type="text" id="7`SyzYzFYC=nvQ]l|,aM"> <field name="TEXT"></field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="s$rCkO%:j5suW6p(#xvF"> <field name="VAR" id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</field> <value name="VALUE"> <block type="procedures_callreturn" id="v75~D0ewqabLncoo93;o"> <mutation name="FensterIDzuName"> <arg name="FensterID"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="!upO+Dq`@q*=]Nuj,8GC"> <field name="VAR" id="_Q5q[O$w$4z?Y^m(i1k/">Fenster</field> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="St+-l(3XhC@RUEetNkU*"> <field name="VAR" id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</field> <value name="VALUE"> <block type="text_join" id="P46}YWmq;Q7L4MzLuHL%"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id=")5.?{|@f0)u~-!:-08HW"> <field name="VAR" id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</field> </block> </value> <value name="ADD1"> <block type="text" id="`M(ziQH{jE:J}~*~It)^"> <field name="TEXT">, </field> </block> </value> <value name="ADD2"> <block type="procedures_callreturn" id="u/o7o#leNI;?}f7+{l9j"> <mutation name="FensterIDzuName"> <arg name="FensterID"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id=":|JXuK+$rv8_YfPUw].e"> <field name="VAR" id="_Q5q[O$w$4z?Y^m(i1k/">Fenster</field> </block> </value> </block> </value> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="pushover" id="pEMpj1?=$J7=9~a?2w`#"> <field name="INSTANCE"></field> <field name="SOUND"></field> <field name="PRIORITY">0</field> <field name="LOG"></field> <field name="FORMAT">none</field> <value name="MESSAGE"> <shadow type="text" id="CZNd2S`E)3Z+`Zfd_}(g"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="hIYahJGSvB~qriqH/T@G"> <mutation items="5"></mutation> <value name="ADD0"> <block type="text" id="jLPXklR03d]Q7rVHzcBY"> <field name="TEXT">Anzahl offener Fenster: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="/8A|XDM[Lj@ct}H4kzUV"> <field name="VAR" id="/jS=J@*xZwKprot(yu(4">Anzahl</field> </block> </value> <value name="ADD2"> <block type="text_newline" id="6;M!.(4B3FMyr#^LtA}6"> <field name="Type">\n</field> </block> </value> <value name="ADD3"> <block type="text" id="),3!GMk7m7u+tKA_%Th="> <field name="TEXT">Fenster: </field> </block> </value> <value name="ADD4"> <block type="variables_get" id=";idyz#|jU`0n0g}Uks[_"> <field name="VAR" id="Lk/Y9W{mUAS:DJuOMC/^">offeneFenster</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> <block type="procedures_defreturn" id="5!OuFRht*fn5dne3b%,2" x="-1325" y="-1471"> <mutation> <arg name="FensterID" varid="mw5Sq5;2#c]Cjv:HvDqW"></arg> </mutation> <field name="NAME">FensterIDzuName</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="logic_switch_case" id="Y]B4uY4SjX.coFi]R3au"> <mutation xmlns="http://www.w3.org/1999/xhtml" case="26" default="1"></mutation> <value name="CONDITION"> <block type="variables_get" id="SZ;.9N(0XS_%qml#Q7D}"> <field name="VAR" id="mw5Sq5;2#c]Cjv:HvDqW">FensterID</field> </block> </value> <value name="CASECONDITION0"> <block type="field_oid" id="DZaTd5Ifzw4)ZVAZl;bw"> <field name="oid">hm-rpc.0.MEQ1594796.1.STATE</field> </block> </value> <statement name="CASE0"> <block type="comment" id="F(Iekm1S^:L=[M1a$TWJ"> <field name="COMMENT">Wohnkeller</field> <next> <block type="variables_set" id="$gf2nHKQ0ZL`U%=YM_:^"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="mZ42h+kbo_C:XvaTUlC:"> <field name="TEXT">Wohnkeller</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION1"> <block type="field_oid" id="lTDIQJ@[@NM4dfl60hNQ"> <field name="oid">hm-rpc.0.MEQ0917523.1.STATE</field> </block> </value> <statement name="CASE1"> <block type="comment" id="LzH;rI(5xZ06_||sjVyL"> <field name="COMMENT">Küche</field> <next> <block type="variables_set" id="6kR5bnplv#R!9Vqt;Uf|"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="lC*i6lTLhzUb4yYzxQ(G"> <field name="TEXT">Küchenfenster</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION2"> <block type="field_oid" id="hU1MeZY1nNwALQ--Pz7_"> <field name="oid">hm-rpc.0.MEQ1831348.1.STATE</field> </block> </value> <statement name="CASE2"> <block type="comment" id="vP~0W4qjgo4P7Y|Dqv+="> <field name="COMMENT">Gäste WC</field> <next> <block type="variables_set" id="fK`/k}JjkpLn)whD%ix["> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="dxB_uXj(YCEK4^nG5B1D"> <field name="TEXT">Dusche/WC</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION3"> <block type="field_oid" id="=~!pEH2uV#xSFJw/z~Fm"> <field name="oid">hm-rpc.0.NEQ1822370.1.STATE</field> </block> </value> <statement name="CASE3"> <block type="comment" id="_LHEUDhZp3UipCZI)jT0"> <field name="COMMENT">Büro ..</field> <next> <block type="variables_set" id="2aqG~t%+N@`_,Vqs3h1?"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="Wu-me^R8nujv~^=ln#O*"> <field name="TEXT">Büro West</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION4"> <block type="field_oid" id="$O7tF:.ha4y:`KiQ2Sij"> <field name="oid">hm-rpc.0.NEQ1822294.1.STATE</field> </block> </value> <statement name="CASE4"> <block type="variables_set" id="vDy]-v(CZ%)zZ_By8-o4"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="LcsRhr^oQusni}2cMddj"> <field name="TEXT">Büro Nord</field> </block> </value> </block> </statement> <value name="CASECONDITION5"> <block type="field_oid" id="Cf=c(+}*[)Noe5bXq]vO"> <field name="oid">hm-rpc.0.OEQ0441360.1.STATE</field> </block> </value> <statement name="CASE5"> <block type="comment" id="AJ0{nE|T3:ecY2;gGygJ"> <field name="COMMENT">Wohnzimmer ..</field> <next> <block type="variables_set" id="v4;2Jeq:_.92/{jOQ~@z"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="Xi.D.`{.LbT7Q$RNfccL"> <field name="TEXT">Wohnzimmer Ost</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION6"> <block type="field_oid" id="].=(GZ@fg1@xjb[Ud-KF"> <field name="oid">hm-rpc.0.MEQ1107847.1.STATE</field> </block> </value> <statement name="CASE6"> <block type="variables_set" id="!I8`s(ZeNt^mi6_|+;I0"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="I-T=KBx8HTF0qsEYk]oS"> <field name="TEXT">Terrasse rechts</field> </block> </value> </block> </statement> <value name="CASECONDITION7"> <block type="field_oid" id="dOdxE9Xczs=*/?]hkyYi"> <field name="oid">hm-rpc.0.MEQ1726433.1.STATE</field> </block> </value> <statement name="CASE7"> <block type="variables_set" id="Yay~G?~Mi5[4B3e+3C17"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="G0dex:14CxpDr|1C+t%q"> <field name="TEXT">Terrasse links</field> </block> </value> </block> </statement> <value name="CASECONDITION8"> <block type="field_oid" id="*g;/4glyBFT|EBqwLeTO"> <field name="oid">hm-rpc.0.OEQ0441440.1.STATE</field> </block> </value> <statement name="CASE8"> <block type="variables_set" id="y]35Rd1ovsK3d)dFG0.["> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="r(_I1R[=e@8iFZ%2Sym8"> <field name="TEXT">EG Turm Südwest</field> </block> </value> </block> </statement> <value name="CASECONDITION9"> <block type="field_oid" id="*qYu;E_fL^mXP@gtj~E^"> <field name="oid">hm-rpc.0.NEQ0377273.1.STATE</field> </block> </value> <statement name="CASE9"> <block type="variables_set" id="qi:g_%-0IMFFIw4-y9H+"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="0Ci%^FzjADb#)a}(9@U}"> <field name="TEXT">EG Turm Süd</field> </block> </value> </block> </statement> <value name="CASECONDITION10"> <block type="field_oid" id="zx3Ht-k/8aSzw@r20.,H"> <field name="oid">hm-rpc.0.OEQ0441221.1.STATE</field> </block> </value> <statement name="CASE10"> <block type="variables_set" id="rfP~a6^z2+1MK4}~b2vV"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="JCQVHoJ.-Y,r{=s)LMMg"> <field name="TEXT">EG Turm Südost</field> </block> </value> </block> </statement> <value name="CASECONDITION11"> <block type="field_oid" id="z_{q];+Q[=PcCf{jn26+"> <field name="oid">hm-rpc.0.OEQ0441183.1.STATE</field> </block> </value> <statement name="CASE11"> <block type="variables_set" id="XWAL?t}I.C2z3NG2xrxq"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="?pJ_P(J{T}Vj2)u|ITdD"> <field name="TEXT">EG Turm Ost</field> </block> </value> </block> </statement> <value name="CASECONDITION12"> <block type="field_oid" id="W[YZTmWJTHX0+8!lRjef"> <field name="oid">hm-rpc.0.OEQ0441441.1.STATE</field> </block> </value> <statement name="CASE12"> <block type="variables_set" id="Ca0r}lo5i.}X)Lp;Cn(v"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="`S$.*!t.J~LMB#MP.l?v"> <field name="TEXT">EG Turm Nordost</field> </block> </value> </block> </statement> <value name="CASECONDITION13"> <block type="field_oid" id="8r`?]`gSdU0ov7jj`{hE"> <field name="oid">hm-rpc.0.MEQ1107884.1.STATE</field> </block> </value> <statement name="CASE13"> <block type="comment" id="Zo#PO=3hK.n*[m7Yi*-^"> <field name="COMMENT">Treppenhaus</field> <next> <block type="variables_set" id="79{b}K[[i[H{NWVc*V42"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="i]vwS*-1hfZDM,0-Tg1M"> <field name="TEXT">Treppenhaus</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION14"> <block type="field_oid" id="4=[.%+cN3^pZUg)VO3:?"> <field name="oid">hm-rpc.0.NEQ0377878.1.STATE</field> </block> </value> <statement name="CASE14"> <block type="comment" id="mRQz+vWYAh$t$9QR^vW-"> <field name="COMMENT">Kind 1 ..</field> <next> <block type="variables_set" id="@c4N_LxcH`P27s6.@FV!"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="R?!QU.FP-7Y`$d`/Gksg"> <field name="TEXT">Kind 1 West</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION15"> <block type="field_oid" id="cZwGN]lvEx$gO.!AvMvr"> <field name="oid">hm-rpc.0.NEQ0377139.1.STATE</field> </block> </value> <statement name="CASE15"> <block type="variables_set" id="]QVoquAx/+I_l|r#`i:t"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="S?JR9:A6Dafp=2Fg$54Z"> <field name="TEXT">Kind 1 Süd</field> </block> </value> </block> </statement> <value name="CASECONDITION16"> <block type="field_oid" id="T@N5*34fSW7i6!8T]WZK"> <field name="oid">hm-rpc.0.OEQ0441370.1.STATE</field> </block> </value> <statement name="CASE16"> <block type="comment" id="=/hM(S`NVu:!]jCLVE!|"> <field name="COMMENT">Kind 2 ..</field> <next> <block type="variables_set" id=";PjSwOXG^gjmGB(I6)WC"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="yC:u)5mwRTgidw7pYve7"> <field name="TEXT">Kind 2 links</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION17"> <block type="field_oid" id="Z:ZRwla.-_p/X^HkXJ[i"> <field name="oid">hm-rpc.0.OEQ0440987.1.STATE</field> </block> </value> <statement name="CASE17"> <block type="variables_set" id="*E*P!W_E6l8C?)Ifn(q/"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="Fn87k|)v!Q3RO-UjTx{k"> <field name="TEXT">Kind 2 rechts</field> </block> </value> </block> </statement> <value name="CASECONDITION18"> <block type="field_oid" id="zNn7=dVxE}t+D-oi*7v4"> <field name="oid">hm-rpc.0.OEQ0441224.1.STATE</field> </block> </value> <statement name="CASE18"> <block type="comment" id="^[#1ueBOP/xjl2pUYd$)"> <field name="COMMENT">Badezimmer ..</field> <next> <block type="variables_set" id="0!|Cg_n(yUMV/$J2/G6I"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="|o|2j8E3ez/ca.D47({g"> <field name="TEXT">Badezimmer Nord</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION19"> <block type="field_oid" id="@%SDY!Yw_Bc5w;vL+v9|"> <field name="oid">hm-rpc.0.OEQ0441186.1.STATE</field> </block> </value> <statement name="CASE19"> <block type="variables_set" id="6cDxzLEn;mowkS|_ZGO5"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="a`r:(.p-}P6x(oV6XOK."> <field name="TEXT">Badezimmer Ost</field> </block> </value> </block> </statement> <value name="CASECONDITION20"> <block type="field_oid" id="?J0}:B{jlI$DdL)6#llA"> <field name="oid">hm-rpc.0.NEQ0377323.1.STATE</field> </block> </value> <statement name="CASE20"> <block type="comment" id=";|:6m(v7a#l.;7~eC:Y,"> <field name="COMMENT">Schlafzimmer ..</field> <next> <block type="variables_set" id="IOHK=Vc[3DuwU_W6o:}p"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="xQS%q!7SH%,/ii/$FF@~"> <field name="TEXT">Schlafzimmer Ost</field> </block> </value> </block> </next> </block> </statement> <value name="CASECONDITION21"> <block type="field_oid" id="h6wCZUY%ielbCABW^2F%"> <field name="oid">hm-rpc.0.NEQ0377125.1.STATE</field> </block> </value> <statement name="CASE21"> <block type="variables_set" id="X8{K?[f:Rh-RB}n^#bFO"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="qwZx~K,k#6,(H*eu_8}H"> <field name="TEXT">Schlafzimmer Süd</field> </block> </value> </block> </statement> <value name="CASECONDITION22"> <block type="field_oid" id=":L?iT1`=9qL5f9j10qT;"> <field name="oid">hm-rpc.0.NEQ1822385.1.STATE</field> </block> </value> <statement name="CASE22"> <block type="variables_set" id=".^30YVg5,xW_0it*B^;T"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="VkfhQEyTC{$l+NxVGv2X"> <field name="TEXT">OG Turm Südwest</field> </block> </value> </block> </statement> <value name="CASECONDITION23"> <block type="field_oid" id="B#=6N4d-$NE98HuzJU0%"> <field name="oid">hm-rpc.0.MEQ0917532.1.STATE</field> </block> </value> <statement name="CASE23"> <block type="variables_set" id="nT9PvLZiNvwzGUKHd}=4"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="u%[t$?MZr6bc8y[q4WLg"> <field name="TEXT">OG Turm Süd</field> </block> </value> </block> </statement> <value name="CASECONDITION24"> <block type="field_oid" id="4guzhZ5@kD*J.^I4Sj[S"> <field name="oid">hm-rpc.0.OEQ0441240.1.STATE</field> </block> </value> <statement name="CASE24"> <block type="variables_set" id="$hkW8mRzTq08NE6SIB2k"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="(u;p6:[?2h(+Bo4e.%1a"> <field name="TEXT">OG Turm Südost</field> </block> </value> </block> </statement> <value name="CASECONDITION25"> <block type="field_oid" id="FKGZUGymIFBlYUi=n/(="> <field name="oid">hm-rpc.0.NEQ1822273.1.LOWBAT</field> </block> </value> <statement name="CASE25"> <block type="variables_set" id="PZ,ZEC+rCTH0XnfX5LS)"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="br2tWsCnI{e(4t#W~UU5"> <field name="TEXT">OG Turm Ost</field> </block> </value> </block> </statement> <value name="CASECONDITION26"> <block type="field_oid" id="F1%tWTVo?:jWeT2]o0,L"> <field name="oid">hm-rpc.0.NEQ1822589.1.STATE</field> </block> </value> <statement name="CASE26"> <block type="variables_set" id="u0P^]V1/gIYhX62|Nlpb"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="oGuk:)M6R^X|9w!7EE(]"> <field name="TEXT">OG Turm Nordost</field> </block> </value> </block> </statement> <statement name="ONDEFAULT"> <block type="variables_set" id="U1ZUW|RB6_?A]661CtSy"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> <value name="VALUE"> <block type="text" id="wjkV(D4m4fzlYt3~+N{D"> <field name="TEXT">unbekannt</field> </block> </value> </block> </statement> </block> </statement> <value name="RETURN"> <block type="variables_get" id="@?9|genJM)t(8AvTbBs^"> <field name="VAR" id="RDW%jsRqulQ14_Ma;+.6">FensterName</field> </block> </value> </block> </xml>
-
@legro
in meinem "alten" System (Raspberry pi 4 mit Bullseye) hatte ich ioBroker VIS aktiv und habe mir den Grundriss mit Fenstern, Türen und Lichtern und deren Zustand dargestellt. Schalten konnte ich die Lichter hier auch. Das war soweit ok. Hier nur ein Ausschnitt:
Jetzt mit Raspberry pi 5 und Bookworm habe ich das noch nicht rübergezogen. Ich hatte gehofft, dass ich es mit Grafana zumindest ähnlich hin bekomme. Da habe ich aber bisher keinen Weg gefunden. Es wäre aus meiner Sicht schöner, wenn ioBroker nur die Aufgabe des Datenlieferanten übernimmt, influxdb2 die Datenbankrolle und Grafana die Visualisierung der Ergebnisse.
Hier ein Ausschnitt meiner Darstellung in Grafana:
Das Problem mit offenen Fenstern und Türen und der Meldung dazu habe ich auch mit Blockly gelöst. Die Darstellung der aktuellen Zustände geht nach meiner Kenntnis nur mit VIS in ioBroker oder in Grafana, wobei meine Lösung in Grafana sicher nicht elegant ist, aber immerhin den Zweck erfüllt. Falls es mit Grafana eine bessere Lösung gibt, würde ich das gerne mal testen -
Meine Vermutung hinsichtlich deines Vorhabens ..
Du willst wohl in Grafana den Namen des angezeigten Zustandes und dessen Wert variabel in einem Dashboard gestalten???
Dies widerspricht dem Konzept von Grafana. Der Name ist fest mit der Datenquelle und der Zustand der aus der Quelle ausgelesene Wert.
Demnach müsstest du eine Quelle für dein Dashboard definieren, dass Wertpaare (aus Datenpunktnamen und Werte) enthält.
-
@legro
"Demnach müsstest du eine Quelle für dein Dashboard definieren, dass Wertpaare (aus Datenpunktnamen und Werte) enthält."Ich denke, das trifft es. Siehe mein Beitrag oben vom 24.12. 12:10
Offenbar kann ich nicht wie in anderen Datenbanken (nicht influxdb2) die Datenbankstruktur (zusätzliche Felder) ändern und somit auch nicht in Grafana nutzen. -
@dgr sagte in "unabhängigen" Datenpunkt anlegen:
Offenbar kann ich nicht wie in anderen Datenbanken (nicht influxdb2) die Datenbankstruktur (zusätzliche Felder) ändern und somit auch nicht in Grafana nutzen.
Natürlich müsstest du das können, aber nicht mit dem InfluxDB Adapter.
Der ist nur zum speichern der Datenpunkte. -
@homoran
Da hätte ich von Anfang an genau lesen sollen. Der Adapter sagt ja explizit "Daten mit influxdb protokollieren" und protokollieren heißt eben nur protokollieren. -
@dgr sagte in "unabhängigen" Datenpunkt anlegen:
Der Adapter sagt ja explizit "Daten mit influxdb protokollieren"
genau!
Der Adapter ist nur für die Historisierung der Werte von Datenpunkten gedacht.
Datenbank"manipulationen" musst du selber programmieren