NEWS
Test Fröling Connect v0.0.x
-
@strobelix Ich habe die 0.0.4 veröffentlicht die jetzt korrekt boiler und heizkreis in der componentlist aufteilt. Dadurch ändert sich die componentlist aber nochmal komplett und vis und skripte müsste nochmal angepasst werden
-
@tombox guten morgen, habe gestern 6 komponenten der heizung in meine vis eingefügt und eine komponente, der pufferspeicher ist zu klein dargestellt. gibt es da eine möglichkeit dieses image genau so gross darzustellen wie die restlichen fünf?!
gruß,
bernd -
@scheuler ich glaube das geht dann nur über css in der vis
-
@scheuler said in Test Fröling Connect v0.0.x:
@tombox guten morgen, habe gestern 6 komponenten der heizung in meine vis eingefügt und eine komponente, der pufferspeicher ist zu klein dargestellt. gibt es da eine möglichkeit dieses image genau so gross darzustellen wie die restlichen fünf?!
gruß,
berndEin einfaches scale(1.5) im css sollte da ausreichen
-
Hallo,
ich finde den Adapter super.
Bei den milden Temperaturen versuche ich, meine Heizung auf „Absenken“ zu schalten, wenn die Heizkörper keine Wärme brauchen. Das mach ich mit dem Datenpunkt:froeling.0.34022.details.Heizung.betriebsart-9989.parameter.setValue
Allerdings bekomme ich folgende Fehlermeldung im IOBroker-Log:
{"timestamp":"2022-04-07T09:43:10.602+00:00","status":403,"error":"Forbidden","message":"","path":"/v1.0/resources/facility/setParam/34022"}
und die Heizung geht nicht auf Absenken.
-
Über den Datenpunkt direkt kann ich einwandfrei schalten.
froeling.0.34022.details.Heizung.betriebsart-9989.parameter.setValue
Wo liegt der Fehler?
-
@gr was für einen Befehl sendest du denn? Ist es eine Zahl oder ein String?
-
@strobelix Sorry, hab gerade erst gesehen, daß eine Antwort kam.
Ich sende einen String. Habs mit AUTO / Absenken, und auch mit den Zahlen für die Zustände 1/3 versucht, auch als String. -
@gr muss auf jeden Fall eine Zahl sein und keine Zahl als String.
Bei mir funktioniert das gut -
@strobelix habs mal auf Zahl umgestellt. Die Fehler im Log sind jetzt weg. Ob er aber wirklich schaltet, hab ich noch nicht rausgefunden.
-
Leider taucht der Fehler doch wieder auf und die Heizung geht nicht auf „Absenken“. Hier der aktuelle Fehler:
froeling.0 2022-04-29 08:16:14.815 error {"timestamp":"2022-04-29T06:16:14.784+00:00","status":403,"error":"Forbidden","message":"","path":"/v1.0/resources/facility/setParam/34022"}
Der erste Teil des Blockly-Skripts sieht so aus:
-
@gr
Ich hab gerade den SetValue bei mir ausprobiert und es funktioniert ohne Probleme.
Erhalte auch keine Fehlermeldung.
Passiert das auch, wenn du den Wert manuell in den Objekten umstellst? -
@strobelix Hab den Fehler gefunden. Ich hatte einfach den falschen Datenpunkt benutzt. Jetzt habe ich es richtig eingestellt und es funktioniert ohne Probleme.
-
Danke für den Adapter @tombox ,
hätte eine Frage dazu kann ich die Pellets Austragung auch über den Iobroker steuern?
Denn bei mir ist eingestellt jeweils 0 Uhr 1. und 2. Zeit, doch was mir aufgefallen ist, sind nur mehr 1,2% im Pelletsbehälter vom Ofen, dann fängt der Ofen zum Zünden an und dann stellt er die Feuerung ein und holt sich die Pellets vom Silo, das ist ja ein Blödsinn, ich hätte vor, sollten nur mehr unter 50% Pellets im Pelletsbehälter sein daß sich der Ofen im ausgeschalteten Zustand die Pellets holt, dies würde ich dann über den iobroker steuern.
Ist das möglich und wenn ja welcher Punkt wäre das, und schaltet er dann bei 100% selbstständig ab?
Ich habe das jetzt mal so gelöst.
<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id=";D(+y,aLtSszY)l8njq-" collapsed="true" x="138" y="38"> <field name="SCHEDULE">38 9,11,13,15,17 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="$l,/~Z](UC`JU32pF4ml"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="Oc#yNFy;x=uEApQ~(e1s"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="-%:HO`=Cxx!bv.opv3HR"> <field name="ATTR">val</field> <field name="OID">froeling.0.46035.details.Austragung.pelletsFillLevel-113.valueText</field> </block> </value> <value name="B"> <block type="math_number" id="HP0)1a|]HR$Ndb}A3~zp"> <field name="NUM">50</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="=.s^67qOu(k9wu?Gn%[5"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="9$UP5!F~+SrMigvcHfEi"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Os@bWxoP?M[*GcNfb5Qc"> <field name="ATTR">val</field> <field name="OID">froeling.0.46035.details.Kessel.kesselEinAus-9887.parameter.setValue</field> </block> </value> <value name="B"> <block type="math_number" id="g%XbpD0YpOKtp/wcA4.L"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="6}-(H%*uxz0UV.U;%2~U"> <field name="VAR" id="/!q).NhQ1Ryxtm)p)xc:">neue_Zeit</field> <value name="VALUE"> <block type="math_arithmetic" id="o28GpJ^?Lg(~4F9f=3L^"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="tddRBzRY_[NS#YAL~ze,"> <field name="NUM">1</field> </shadow> <block type="time_get" id="Ohj_q5xz5sY,9DW?73c,"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">object</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="Pf:LDD6hJBt=P8*znZGd"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="R%TR}VJC#.wq;A#[zD,;"> <field name="NUM">1800</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="8HFni(1T2rn]Myc#Fk))"> <field name="NUM">1000</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="control" id="Tx6W=TLz~mZ0U$OD.Chq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">froeling.0.46035.componentList.Austragung-Austragung.startFirstFilling.setValue</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_from_date" id="V^D7CE0(}b,qgfHmSa,E"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation> <field name="OPTION">custom</field> <field name="FORMAT">SS:mm</field> <value name="VALUE"> <block type="variables_get" id="iO8az6C0=h?_%p-[,kXA"> <field name="VAR" id="/!q).NhQ1Ryxtm)p)xc:">neue_Zeit</field> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="7h`Qgl~qW_}ecg.o~5Hb"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">froeling.0.46035.componentList.Austragung-Austragung.startFirstFilling.setValue</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="7UfSNm;gYjGX.Y_D.$QO"> <field name="TEXT">00:00</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="control" id="|#|~Ne[.FXosa2@M1D.|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">froeling.0.46035.componentList.Austragung-Austragung.startFirstFilling.setValue</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="nbkuOJ)c|~M{cx_JLA4O"> <field name="TEXT">00:00</field> </block> </value> </block> </statement> </block> </statement> </block>
Hier wird unterm Tag alle 2 Stunden abgefragt wie voll der Pelletsbehälter im Ofen ist. ist er unter 50% dann wird die aktuelle Zeit abgefragt. Allerdings nur im Kesselzustand aus. Auf die aktuelle Zeit wird nun 30 Minuten draufgerechnet und die Zeit in die erste Befüllung eingetragen, Innerhalb 2 Minuten sollte dann der Befüllvorgang starten. Anderweitig ist Füllstand größer 50% bleibt Uhrzeit der 2 Befüllaktionen auf 00:00 Uhr oder sie wird wieder dahin gesetzt.
Ich weiß jetzt nur noch nicht inwieweit der Kessel dann auf aus stellt im Winterbetrieb, aktuell haben wir Sommerbetrieb und mache das Brauchwasser mit Heizstab warm außer die Temperatur fällt unter 58 Grad dann wird der Kessel eingeschaltet und heizt mir den kompletten Pufferspeicher durch.
-
@tombox
Zunächst mal tausend Dank für den code. Ich verwende zwar kein ioBrocker, aber der Javascript code funktioniert ja unabhängig davon (bei mir läuft ein ESP32 der alle 3 Stunden die Werte abfragt und in eine Datei schreibt, was prima funktioniert).
Was ich noch vermisse sind die Daten aus dem Info Tab (Brennerstarts, Betriebsstunden...)
Ich habe auch schon versucht die API calls in der Andrioid APK Datei zu finden. Aber das einzige was da als /info zu finden war ist:
v1.0/resources/user/{UserId}/nxg/facility/{FacilityId}/info
Und das liefert mir nur einen 404 Not Found Fehler. -
@borax
.....com/connect/v1.0/resources/service/user/USERID/facility/FACID/info.com/connect/v1.0/resources/service/user/USERID/facility
.com/aks/connect/v1.0/resources/service/user/USERID/facility/FACID/picture
-
Wow ging das schnell!
Funktioniert bestens.
1024 Dank!Darf ich fragen wie du das raus bekommen hast?
-
@borax Einfach schauen was die App abruft.
Ich habe es mal in den Adapter eingebaut aber ungetestet ob die infos angezeigt werden -
@tombox said in Test Fröling Connect v0.0.x:
Einfach schauen was die App abruft.
Hast du die App irgendwie decompiliert? Weil aus dem 'rohen' Text bin ich nicht schlau geworden...
-
@borax zB mit Fiddler kannst du die App Kommunikation umleiten und auslesen. So kommt man dann am einfachsten an die API Endpunkte