Ich hab privat und in der Firma eine 1.8er Version laufen. Welche genau, weiß ich nicht auswendig. Privat sendet nur der EibPC Daten, in der Firma kommen noch Daten aus anderen Quellen rein (per HTTP). Ansonsten nutze ich nichts weiter.
Ankündigung
Einklappen
Keine Ankündigung bisher.
TCP POST (Grafana/InfluxDB)
Einklappen
X
-
Zitat von Saniersiedler Beitrag anzeigenIch hab privat und in der Firma eine 1.8er Version laufen. Welche genau, weiß ich nicht auswendig. Privat sendet nur der EibPC Daten, in der Firma kommen noch Daten aus anderen Quellen rein (per HTTP). Ansonsten nutze ich nichts weiter
Ich hab die aktuelle V2.3.0 eingespielt und Telegraf dazugenommen. UDP funktioniert da wohl nicht mehr
Installiert auf Synology RS
Zitat von foobar0815 Beitrag anzeigenInfluxdb2 sollte sich doch mit dem http telegraf plugin mit der httprequest-Funktion mindestens genauso einfach befüllen lassen.Würde sehr helfen um nich nicht total zu verlaufen
Grüße Hannes
Kommentar
-
Hi,
scheinbar braucht man Telegraf gar nicht dafür:
https://docs.influxdata.com/influxdb...per-tools/api/
D.h. du kannst den webrequest-Knoten direkt verwenden und dort die notwendigen Infos für den Header usw. eintragen. Habe aktuell keine InfluxDB/Grafana laufen, um das selbst testen zu können.
Kommentar
-
Zitat von foobar0815 Beitrag anzeigenD.h. du kannst den webrequest-Knoten direkt verwenden und dort die notwendigen Infos für den Header usw. eintragen. Habe aktuell keine InfluxDB/Grafana laufen, um das selbst testen zu können.
Code:// ------------------------------------------------------------------------------------------------------------------------------------------------ // // benötigte globale Variablen // // ------------------------------------------------------------------------------------------------------------------------------------------------ //für Post Knoten: o0=255; o1=0u16; o2=$$c65534; o3=$$c65534; // Timerbit InfluxTick = AUS; //Datenspeicher //Temperaturwerte //Ist InfluxDataTemperaturIstwertDG= $$c65534; InfluxDataTemperaturIstwertEG= $$c65534; InfluxDataTemperaturIstwertKG= $$c65534; InfluxDataTemperaturIstwertEL= $$c65534; InfluxDataTemperaturIstwertHeizung= $$c65534; //Stellwert InfluxDataTemperaturStellwertEG= $$c65534; InfluxDataTemperaturStellwertEL= $$c65534; //Verbrauch InfluxDataVerbrauchHaus= $$c65534; //Sensorik alle Haus InfluxDataSensorikWetter= $$c65534; // IP mit Port org=deineOrg bucket=deinBucket precision=deineprecision InfluxURL=$http://10.101.15.188:8086/api/v2/write?org=deineOrganisation&bucket=TestBucket2&precision=ms$; // Token=deinToken InfluxToken=$Authorization: Token 5CABRbqm6OeeC0AvS-ISbDhjgsdfgekertpeotopidfgT-LQZx3a9XLkxOKE5AgEN_1arJug==$; InfluxType0=$Content-Type: text/plain; charset=utf-8$; InfluxType1=$Accept: application/json$; // ------------------------------------------------------------------------------------------------------------------------------------------------ // // Zykluseinstellungen // // ------------------------------------------------------------------------------------------------------------------------------------------------ if cycle(5,00) then { InfluxTick = EIN; // Datenabfrage starten für nicht permanent gesendete Daten oder um nach Reboot diese vorher abzufragen read("Heizung Messwert Vorlauf -17/0/0"); read("Heizung Messwert Rücklauf-17/0/5"); read("Zirkulation Messwert zum Speicher-17/0/20"); read("Zirkulation Messwert zur Pumpe-17/0/25"); read("Warmwasserspeicher Messwert Rücklauf-17/0/10"); read("Warmwasserspeicher Messwert Vorlauf-17/0/15"); read("akt Leistung L1-8/0/0"); read("akt Leistung L2-8/0/1"); read("akt Leistung L3-8/0/2"); read("akt Leistung gesamt-8/0/3"); }endif; // ------------------------------------------------------------------------------------------------------------------------------------------------ // // Influxpakete aktualisieren und versenden // // ------------------------------------------------------------------------------------------------------------------------------------------------ if after(InfluxTick==EIN,10000u64) then { InfluxTick=AUS; o3=$Cycle: Tick = $ + convert(InfluxTick,$$); InfluxDataTemperaturIstwertEG = $Temperatur,host=EibPC,Bereich=Erdgeschoss,Typ=Ist wert$ + \\ $ $ + $Flur=$ + stringformat("Flur EG Temperatur messwert-3/0/40",4,6,1,1) + \\ $,$ + $Wohnzimmer=$+ stringformat("WZ EG Temperatur Messwert-3/0/80",4,6,1,1) + \\ $,$ + $WohnzimmerexternerSensor=$+ stringformat("WZ EG Temperatur Messwer ext Fühler-3/0/81",4,6,1,1) + \\ $,$ + $Küche=$+ stringformat("Küche EG Temperatur messwert-3/0/20",4,6,1,1) + \\ $,$ + $Bad=$+ stringformat("Bad EG Temperatur messwert-3/0/0",4,6,1,1) + \\ $,$ + $Schlafzimmer=$+ stringformat("SZ EG Temperatur Messwert-3/0/60",4,6,1,1) + \\ $ $ + stringformat(utctime(), 0, 6, 1, 1) ; InfluxDataTemperaturIstwertEL = $Temperatur,host=EibPC,Bereich=Einlieger,Typ=Istwe rt$ + \\ $ $ + $Flur=$ + stringformat("KG Flur Temp Messwert -2/0/0",4,6,1,1) + \\ $,$ + $Wohnzimmer=$ + stringformat("WZ KG Temperatur messwert-2/0/80",4,6,1,1) + \\ $,$ + $Küche=$ + stringformat("Küche KG Temperatur messwert-2/0/40",4,6,1,1) + \\ $,$ + $Schlafzimmer=$ + stringformat("SZ KG Temperatur messwert-2/0/60",4,6,1,1) + \\ $ $ + stringformat(utctime(), 0, 6, 1, 1) ; InfluxDataTemperaturIstwertHeizung = $Temperatur,host=EibPC,Bereich=Heizung,Typ=Istwert $ + \\ $ $ + $HeizkreiseVorlauf=$ + stringformat("Heizung Messwert Vorlauf -17/0/0",4,6,1,1) + \\ $,$ + $HeizkreiseRücklauf=$ + stringformat("Heizung Messwert Rücklauf-17/0/5",4,6,1,1) + \\ $,$ + $WarmwasserspeicherVorlauf=$ + stringformat("Warmwasserspeicher Messwert Vorlauf-17/0/15",4,6,1,1) + \\ $,$ + $WarmwasserspeicherRücklauf=$ + stringformat("Warmwasserspeicher Messwert Rücklauf-17/0/10",4,6,1,1) + \\ $,$ + $WarmwasserzirkulationZurPumpe=$ + stringformat("Zirkulation Messwert zur Pumpe-17/0/25",4,6,1,1) + \\ $,$ + $WarmwasserzirkulationZumSpeicher=$ + stringformat("Zirkulation Messwert zum Speicher-17/0/20",4,6,1,1) + \\ $ $ + stringformat(utctime(), 0, 6, 1, 1) ; // Final dann senden: o0 = httprequest(POST,InfluxURL,$$,InfluxToken+LF+Influ xType0+LF+InfluxType1,\\ InfluxDataTemperaturIstwertEG + LF + \\ InfluxDataTemperaturIstwertEL + LF + \\ InfluxDataTemperaturIstwertHeizung \\ , TLS_IGNORE_CERT,0,0,o1,o2,o3); }endif; // ---------------------------------------------- // // Infobereich // // ---------------------------------------------- //falls gewünscht können die Ausgaben auf ein Weboutput geleitet werden if change(o2) then weboutput(WebOutHeader, o2)endif; if change(o3) then weboutput(WebOutBody, o3)endif;
Die Auflösung (pre cision=ms) werde ich noch auf eine Sekunde stellen um die Datenmenge zu optimieren.Zuletzt geändert von HannesKannes; 24.08.2022, 18:29.
Kommentar
-
Sorry das ich mich hier einfach mal dranhänge. Aber vielleicht gibt es ja noch andere Laien wie mich, die eine Lösung im Logik-Editor bevorzugen
Ich habe es wie folgt gelöst:
Die Messwerte vom Taster (Temperatur und Luftfeuchtigkeit) werden bei jeder Änderung in die InfluxDB geschrieben.
EibPC-InfluxDB.jpg
Der Knoten für den Webrequest sieht wie folgt aus:
Webrequest - Knoten.jpg
Im Query: org=MEINEORGANISATION eintragen und bei bucket=MEINBUCKET
Im Header: Authorization: Token MEINTOKEN
Der Body wird durch die Variablen gefüllt. Wichtig ist hier die exakte Zeichensetzung (Leerzeichen und Kommata, Details siehe: https://docs.influxdata.com/influxdb...line-protocol/ und https://docs.influxdata.com/influxdb...schema-design/
In meinem Beispiel lautet der Body:
Code:Taster,Standort=EG_01_HWR Temperatur=WERT-GA12/1/11,Luftfeuchtigkeit=WERT-GA13/1/10
Der zweite Teil ("Temperatur=") ist die zweite Variable (im Bild: TemperaturIstGleich).
Der Wert für die Temperatur kommt von der GA 12/1/11.
Der Wert für den dritten Teil (",Luftfeuchtigkeit) (wichtig, auf das Komma vor Luftfeuchtigkeit achten) ist die Dritte Variable.
Der Wert für die Luftfeuchtigkeit kommt von der GA 13/1/10.
Falls es noch eleganter geht nehme ich Verbesserungsvorschläge gerne entgegen
Viel Erfolg!
Kommentar
Kommentar