NEWS
Eta Heizung auslesen und Vis [gelöst]
-
Ich lese einen großteil der Werte mit dem Parser-Adapter aus. Der sieht bei mir so aus:

(Beim Export sichert der Parser-Adapter leider nicht alle WErte)
Die Datenpunkte speichere ich dann direkt in SQL.Andere Werte lese ich direkt mit einem Script aus, rechne sie um (Durchschnittsverbrauch etc.) und speichere die Datenpunkte ebenfalls in eine SQL Datenbank:
var parseString = require('xml2js').parseString; //require => ruft modul auf; In diesem Fall "xml2js" http://www.flyacts.com/blog/nodejs-xml-daten-verarbeiten/ var request = require('request'); //ruft Modul request auf und erzeugt zugleich FUnktion request var Test_Objekt_JS_2; var IP_Adress = '192.168.178.13'; var ETA_GesamtVerbrauch = '/user/var//112/10021/0/0/12016'; var ETA_Aussentemp = '/user/var//112/10241/0/0/12197'; function ETA_Status_Aufruf(IP_Adress_A, Get_Status, global_var_ETA){ // erzeugt Funktion und ruft request siehe unten Gesamt_Get=(['http://',IP_Adress_A,':8080', Get_Status].join('')); console.log(Gesamt_Get); request(Gesamt_Get, function (error, response, body) { //ruft Funktion request auf und anonyme Funktion parseString(body, function (err, result) { //ruft Funktion parseString aus Modul xml2js und übergibt Ergebnis aus request-Funktion (=body); Funktion wandelt XML in JSON um // log("XML Objekt: " + result); // log(typeof(result)); xml = JSON.stringify(result); //das XML wird dann in einen STring umgewandelt // log("XML Objekt: " + xml); // Jetzt wird der eigentlich Wert (z.B. 23135) aus dem XML extrahiert var suchString = 'strValue":'; var TXT_laenge = suchString.length; //Länge des Strings "strValue" (danach folgt der interessante Wert) // log("TXT_laenge: " + TXT_laenge); var TXT_begin = xml.indexOf('strValue":'); // log("TXT_begin: " + TXT_begin); var TXT_ende = xml.indexOf('","unit"'); // log("TXT_ende : " + TXT_ende ); var TXT_zwischen = TXT_ende - TXT_begin - TXT_laenge; // log("TXT_zwischen: " + TXT_zwischen); var erg = xml.substr(TXT_begin + 1 + TXT_laenge, TXT_zwischen-1); // jetzt wird der Wert extrahiert // log(typeof(erg)); //setObject("javascript.0.ETA_Verbrauch_Daily_JS"/*ETA_Verbrauch_Daily_JS*/, erg); if (Get_Status == "/user/var//112/10021/0/0/12016"){ erg = parseInt(erg); log(erg); setState("javascript.0.ETA_Verbrauch_Daily_JS"/*ETA_Verbrauch_Daily_JS*/, erg); } else if (Get_Status == "/user/var//112/10241/0/0/12197"){ erg = erg.replace( /,/,"." ); log(erg); erg = parseFloat(erg); log(erg); setState("javascript.0.ETA_Aussentemp_Daily_JS"/*ETA_Aussentemp_Daily_JS*/, erg); } }); }); } // manueller Aufruf: //ETA_Status_Aufruf(IP_Adress, ETA_GesamtVerbrauch); //ETA_Status_Aufruf(IP_Adress, ETA_Aussentemp); //ETA_Status_Aufruf(IP_Adress); schedule("0 21 * * *", function () { ETA_Status_Aufruf(IP_Adress, ETA_GesamtVerbrauch); ETA_Status_Aufruf(IP_Adress, ETA_Aussentemp); log("ETA Verbrauch Abruf durchgeführt"); // Wasserzähler auslesen setState("javascript.0.WaterCount_Daily"/*WaterCount_Daily*/, getState("mqtt.0.Wemos_WasserCounter.Get.WasserCounter_Count.Total").val, true); }); //Hier werden die beiden letzte Datensätze aus der History des täglichen Verbrauchs gelesen und die Differenz errechnet schedule("0 22 * * *", function () { sendTo('sql.0', 'query', 'SELECT `id`, (from_unixtime((`ts` / 1000))) AS time, `val` FROM `ioBroker`.`ts_number` WHERE (`ioBroker`.`ts_number`.`id` = 15) ORDER BY (from_unixtime((`ts` / 1000))) DESC LIMIT 2', function (result) { if (result.error) { console.error(result.error); } else { // show result // console.log('Rows: ' + JSON.stringify(result.result)); // console.log(result.result[0].time) // console.log(result.result[0].val) // console.log(result.result[1].time) // console.log(result.result[1].val) var Differenz = (result.result[0].val) - (result.result[1].val); console.log("Verbraucher letzter Tag: " + Differenz +" kg"); setState("javascript.0.ETA_Vebrauch_letzer_Tag"/*ETA_Vebrauch_letzer_Tag*/, Differenz); } }); // Wasserverbrauch täglich erfassen sendTo('sql.0', 'query', 'SELECT `id`, (from_unixtime((`ts` / 1000))) AS time, `val` FROM `ioBroker`.`ts_number` WHERE (`ioBroker`.`ts_number`.`id` = 28) ORDER BY (from_unixtime((`ts` / 1000))) DESC LIMIT 2', function (result) { if (result.error) { console.error(result.error); } else { var Differenz = (result.result[0].val) - (result.result[1].val); console.log("Verbraucher letzter Tag: " + Differenz +" l"); setState("javascript.0.WaterCount_Daily_DELTA"/*WaterCount_Daily_DELTA*/, Differenz); } }); // Pelletsverbrauch Durchschnitt ALL sendTo('sql.0', 'query', 'SELECT `id`, (from_unixtime((`ts` / 1000))) AS time, `val` FROM `ioBroker`.`ts_number` WHERE (`ioBroker`.`ts_number`.`id` = 18) ORDER BY (from_unixtime((`ts` / 1000))) /*DESC LIMIT 30*/', function (result) { if (result.error) { console.error(result.error); } else { //console.log(result.result.length); //Anzahl der Unterobjekte im Objekt result var i = 0; var sum_old = 0; var sum_new = 0; var avg = 0; for (i; i < result.result.length; i++ ) { // console.log(result.result[i].val) sum_new = sum_old + sum_new; sum_old = (result.result[i].val); } avg = sum_new/(result.result.length); console.log("Summe: " + (sum_new/(result.result.length))); setState("javascript.0.ETA_Verbrauch_Daily_AVG_ALL", avg ); } }); // Pelletsverbrauch Durchschnitt 7 Tage sendTo('sql.0', 'query', 'SELECT `id`, (from_unixtime((`ts` / 1000))) AS time, `val` FROM `ioBroker`.`ts_number` WHERE (`ioBroker`.`ts_number`.`id` = 18) ORDER BY (from_unixtime((`ts` / 1000))) DESC LIMIT 7', function (result) { if (result.error) { console.error(result.error); } else { //console.log(result.result.length); //Anzahl der Unterobjekte im Objekt result var i = 0; var sum_old = 0; var sum_new = 0; for (i; i < result.result.length; i++ ) { // console.log(result.result[i].val) sum_new = sum_old + sum_new; sum_old = (result.result[i].val); } avg = sum_new/(result.result.length); console.log("Summe: " + (sum_new/(result.result.length))); setState("javascript.0.ETA_Verbrauch_Daily_AVG_7", avg ); } }); // Wasserverbrauch Durchschnitt ALL sendTo('sql.0', 'query', 'SELECT `id`, (from_unixtime((`ts` / 1000))) AS time, `val` FROM `ioBroker`.`ts_number` WHERE (`ioBroker`.`ts_number`.`id` = 29) ORDER BY (from_unixtime((`ts` / 1000))) /*DESC LIMIT 30*/', function (result) { if (result.error) { console.error(result.error); } else { //console.log(result.result.length); //Anzahl der Unterobjekte im Objekt result var i = 0; var sum_old = 0; var sum_new = 0; var avg = 0; for (i; i < result.result.length; i++ ) { // console.log(result.result[i].val) sum_new = sum_old + sum_new; sum_old = (result.result[i].val); } avg = sum_new/(result.result.length); console.log("Summe: " + (sum_new/(result.result.length))); setState("javascript.0.WaterCount_Daily_AVG_ALL", avg ); } }); }); /*sendTo('sql.0', 'query', 'SELECT `id`, (from_unixtime((`ts` / 1000))) AS time, `val` FROM `ioBroker`.`ts_number` WHERE (`ioBroker`.`ts_number`.`id` = 28) ORDER BY (from_unixtime((`ts` / 1000))) DESC LIMIT 2', function (result) { if (result.error) { console.error(result.error); } else { var Differenz = (result.result[0].val) - (result.result[1].val); console.log(result.result[1].val); console.log("Verbraucher letzter Tag: " + Differenz +" l"); setState("javascript.0.WaterCount_Daily_DELTA", Differenz); } });*/ -
Und so sieht das Widget aus:

[{"tpl":"tplVis-materialdesign-Chart-Line-History","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"dataCount":"2","aggregate":"average","timeIntervalToShow":"14 days","refreshMethod":"realtime","refreshTimeInterval":"1 hour","pointStyle":"circle","showLegend":"true","legendPosition":"bottom","legendPointStyle":"true","showTooltip":true,"tooltipTimeFormats":"{\"millisecond\":\"lll:ss\",\"second\":\"lll:ss\",\"minute\":\"lll\",\"hour\":\"lll\",\"day\":\"lll\",\"week\":\"lll\",\"month\":\"lll\",\"quarter\":\"lll\",\"year\":\"lll\"}","tooltipShowColorBox":"true","lineSpanGaps0":true,"lineSpanGaps1":true,"xAxisPosition":"bottom","xAxisBounds":"dataSet","xAxisTimeFormats":"{\"minute\":\"HH:mm [Uhr\\\\n] DD.MM[.]\",\"hour\":\"H:00 [Uhr\\\\n] DD.MM[.]\"}","xAxisValueDistanceToAxis":"0","xAxisShowAxis":"true","xAxisShowAxisLabels":"true","xAxisShowGridLines":"true","xAxisShowTicks":"true","yAxisValueDistanceToAxis":"4","showYAxis0":"true","yAxisPosition0":"left","yAxisShowGridLines0":"true","yAxisShowTicks0":"true","yAxisShowAxisBorder0":"true","showYAxis1":"true","yAxisPosition1":"left","yAxisShowGridLines1":"true","yAxisShowTicks1":"true","yAxisShowAxisBorder1":"true","showValues0":false,"valuesPositionAnchor0":"end","valuesPositionAlign0":"top","valuesTextAlign0":"center","showValues1":false,"valuesPositionAnchor1":"end","valuesPositionAlign1":"top","valuesTextAlign1":"center","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"oid0":"parser.0.ETA_Aussentemperatur","oid1":"javascript.0.ETA_Vebrauch_letzer_Tag","historyAdapterInstance":"sql.0","maxDataPoints":"300","useFillColor0":true,"lineTension1":"0.2","valuesMaxDecimals0":"1","valuesFontSize0":"11","valuesMaxDecimals1":"1","valuesFontSize1":"11","minTimeInterval":"","commonYAxis0":"0","commonYAxis1":"1","colorScheme":"brewer.SetOne","pointSize":"0","legendFontColor":"#2a8992","legendFontSize":"13","lineTension0":"0.1","lineThikness0":"2","legendText0":"Aussentemp. ","lineThikness1":"2","legendText1":"Pellets ","valuesRotation0":"0","valuesAppendText0":" °C","valuesAppendText1":" kg","globalColor":"","tooltipBodyFontSize":"0","legendPadding":"-3","xAxisMaxLabel":"","yAxisValueAppendText1":" kg","yAxisValueAppendText0":" °C","yAxisMinValue0":"","yAxisTitleFontSize":"0","yAxisValueFontSize":"12","yAxisValueColor0":"#cd4242","yAxisValueColor1":"#2c5dba","lineSpanGaps2":"true","showYAxis2":"true","yAxisPosition2":"left","yAxisShowGridLines2":"true","yAxisShowTicks2":"true","yAxisShowAxisBorder2":"true","showValues2":false,"valuesPositionAnchor2":"end","valuesPositionAlign2":"top","valuesTextAlign2":"center","oid2":"javascript.0.ETA_Verbrauch_Daily_AVG_ALL","commonYAxis2":"1","legendText2":"Pellets Ø","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"rotate270"},"style":{"left":"-144px","top":"202px","width":"700px","height":"350px"},"widgetSet":"materialdesign"}] -
Hallöchen, ich habe mein Etamon Skript überarbeitet, da einiges nicht zutreffend war bzw. auch nicht vorhanden war.
Nun habe ich aber etliche Warnungen im Log, sind alles die gleichen Meldungen.
Kann mir jemand weiter helfen dabei, würde die Warnungen gern noch weg bekommen, damit das Log-File nicht so voll wird!Hier das abgeänderte Skript:
var http = require('http'); var xpath = require('xpath'); var dom = require('xmldom').DOMParser; var etaIP = 'http://192.168.178.62:8080/user/var'; // 1. URI // 2. iobroker Object // 3. read // 4. write // 5. name // 6. type // 7. unit // 8. role // 9. CCU variable (optional) var etaVars = [ ["/120/10251/0/0/12242", "eta.puffer.oben", true, false, "Puffer oben", "number", "°C", "value.temperature"] ,["/120/10251/0/0/12244", "eta.puffer.unten", true, false, "Puffer unten", "number", "°C", "value.temperature"] //,["/120/10251/0/0/12207", "eta.puffer.aktion", true, false, "Puffer Aktion", "string", "", ""] ,["/120/10251/0/0/12533", "eta.puffer.leistung", true, false, "Puffer Leistung", "number", "KW", ""] ,["/120/10251/0/0/12129", "eta.puffer.zustand", true, false, "Puffer Zustand", "string", "", ""] //,["/120/10101/0/0/12090", "eta.hk.1.zustand", true, false, "Heizkreis Zustand", "string", "", ""] ,["/120/10101/0/0/12241", "eta.hk.1.vorlauf", true, false, "Heizkreis Vorlauf", "number", "°C", "value.temperature"] ,["/120/10101/0/0/12111", "eta.hk.1.heizkurve", true, false, "Heizkreis Heizkurve", "number", "°C", "value.temperature"] ,["/120/10101/0/11124/0", "eta.hk.1.pumpe", true, false, "Heizkreis Pumpe", "string", "", ""] ,["/120/10101/0/11124/2001", "eta.hk.1.anforderung", true, false, "Heizkreis Anforderung", "string", "", ""] //,["/40/10021/0/0/12000", "eta.kessel.aktion", true, false, "Kessel", "string", "", ""] ,["/40/10021/0/0/12153", "eta.kessel.vollast", true, false, "Kessel Vollaststunden", "string", "", ""] ,["/40/10021/0/0/12016", "eta.kessel.verbrauch", true, false, "Kessel Gesmtverbrauch", "number", "kg", ""] ,["/40/10021/0/0/12013", "eta.kessel.aschebox", true, false, "Kessel Verbrauch seit Aschebox", "number", "kg", ""] ,["/40/10021/0/0/12180", "eta.kessel.druck", true, false, "Kessel Druck", "number", "bar", ""] ,["/40/10021/0/0/12001", "eta.kessel.soll", true, false, "Kessel Soll", "number", "°C", ""] ,["/40/10021/0/0/12161", "eta.kessel.ist", true, false, "Kessel Ist", "number", "°C", ""] ,["/40/10021/0/0/12162", "eta.kessel.abgasgtemp", true, false, "Kessel Abgastemperatur", "number", "°C", ""] ,["/40/10021/0/0/12165", "eta.kessel.abgasgeblaese", true, false, "Kessel Abgasgebläse", "number", "U/min", ""] ,["/40/10021/0/0/12164", "eta.kessel.restsauerstoff", true, false, "Kessel Restsauerstoff", "number", "%", ""] ,["/40/10021/0/0/12080", "eta.kessel.zustand", true, false, "Kessel Zustand", "string", "", ""] ,["/40/10201/0/0/12015", "eta.lager.silo", true, false, "Pellets Silo", "number", "kg", ""] ,["/40/10021/0/0/12011", "eta.lager.tag", true, false, "Pellets Tagesbehälter", "number", "kg", ""] ,["/40/10241/0/0/12197", "eta.system.aussentemperatur", true, false, "Aussentemperatur", "number", "°C", ""] ]; etaVars.forEach(function(etaVar){ createState(etaVar[1], 0, { read: etaVar[2], write: etaVar[3], name: etaVar[4], type: etaVar[5], unit: etaVar[6], role: etaVar[7] }); }); schedule("*/5 * * * *", function () { pollETA(); }); pollETA(); function pollETA() { // console.log("** Polling ETA Variables"); etaVars.forEach(function(etaVar){ http.get(etaIP + etaVar[0], function (http_res) { // initialize the container for our data var data = ""; // this event fires many times, each time collecting another piece of the response http_res.on("data", function (chunk) { // append this chunk to our growing `data` var data += chunk; // console.log("** ETA chunk: " + chunk); }); // this event fires *one* time, after all the `data` events/chunks have been gathered http_res.on("end", function () { // console.log("** ETA data: " + data); try { var doc = new dom().parseFromString(data); var select = xpath.useNamespaces({"eta": "http://www.eta.co.at/rest/v1"}); var strValue = (select('//eta:value/@strValue', doc)[0].nodeValue); var text = (select('//eta:value/text()', doc)[0].nodeValue); var scaleFactor = (select('//eta:value/@scaleFactor', doc)[0].nodeValue); var unit = (select('//eta:value/@unit', doc)[0].nodeValue); var value = ""; if (etaVar[5]=="number") { value = text * 1.0 / scaleFactor; } else { value = strValue; } /* console.log("**** ETA " + etaVar[0] + " @strValue: " + strValue); console.log("**** ETA " + etaVar[0] + " @unit: " + unit); console.log("**** ETA " + etaVar[0] + " text() : " + text); console.log("**** ETA " + etaVar[0] + " @scaleFactor: " + scaleFactor); console.log("** ETA [" + etaVar[4] + "]: " + value + " " + unit); */ setState(etaVar[1], value); // Schreibe Variablen zu CCU //if(etaVar[8]!="") { setState(etaVar[8], value); //} } catch (e) { log("ETA: Cannot set data "+ etaVar[2] +":" + e, 'error'); } }); }); }); //var dateFormat = require('dateformat'); //var currentdate = new Date(); //log(dateFormat(currentdate, "dd. mmm yyyy hh:MM")); // optional last update in CCU3 //setState("hm-rega.0.7022", dateFormat(currentdate, "dd. mmm yyyy hh:MM"));Und hier die Meldungen:
20:27:30.935 info javascript.0 (2266) Start javascript script.js.Wohnzimmer.Etamon 20:27:30.951 info javascript.0 (2266) script.js.Wohnzimmer.Etamon: registered 0 subscriptions and 1 schedule 20:27:31.001 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.007 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.014 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.018 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.025 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.029 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.036 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.040 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.046 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.051 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.059 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.063 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.073 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.077 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.081 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.091 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.095 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.100 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.106 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.110 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:27:31.975 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.059 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.066 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.071 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.076 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.082 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.086 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.092 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.101 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.107 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.112 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.116 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.125 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.130 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.134 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.139 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.143 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.152 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.158 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.166 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:00.171 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10) 20:30:01.028 warn javascript.0 (2266) at IncomingMessage.<anonymous> (script.js.Wohnzimmer.Etamon:108:10)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden