NEWS
E-INK Display OpenEPaperLink - Displayanzeige mit Batterie
-
@oxident Doch, aber die Vorschau dort ändert sich auch nicht, was dem entspricht, was das log des AP sagt.
Deswegen ja die Frage, ob ich auf dem IOBroker die erstellten Snapshots noch mal sehen kann, um festzustellen, ob sich da wirklich nichts geändert hat oder die Erkennung von Änderungen im AP dafür sorgt, das da nichts aktualisiert wird.Das Script sieht jetzt so aus:
function updateEPaperWithView(sView, sEPaperMac, imgWidth, imgHeight) { sendTo('puppeteer.0', 'screenshot', { url: 'http://localhost:8089/vis/index.html#' + sView, ioBrokerOptions: { storagePath: sView + '.jpg', }, waitOption: { waitForTimeout: 5000, }, viewportOptions: { width: imgWidth, height: imgHeight }, type: "jpeg", quality: 100 }, obj => { if (obj.error) { log(`Error taking screenshot: ${obj.error.message}`, 'error'); } else { //log('Sucessfully took screenshot'); sendImageToEPaper(obj.result, sEPaperMac); } }); } function sendImageToEPaper(objImage, sMac) { var request = require('request'); var options = { url: 'http://192.168.69.195/imgupload', method: 'POST', formData: { "dither": "0", "mac": sMac, "image": objImage }, }; request(options,function (error, response, body){ //log("Login-Antwort: " + JSON.stringify(response)); if(parseInt(body.error_code)==0) { } else { } }); } schedule("*/10 * * * *", function () { updateEPaperWithView("EPAPER_Tanken", "00000xxxxxxxxx", 296, 128); Sleep(5000); updateEPaperWithView("EPAPER_Solar", "00000xxxxxxxxx", 296, 128); Sleep(5000); updateEPaperWithView("EPAPER_Muell", "00000xxxxxxxxx", 152, 152); Sleep(5000); updateEPaperWithView("EPAPER_Solar", "00000xxxxxxxxxx", 296, 128); Sleep(5000); });
Ich hoffe die sleeps sind an der richtigen Stelle.
-
oh noch jemand der sich mit Hydroponik beschäftigt
Hab auch einen Hydro Tower mit dem ich gerade teste, die Erdbeeren blühen gerade.
Ultraschal Sensor ist da, und schon getestet, wegen Messung der Wasserhöhe im TankNächster Schritt wäre eine PH Messung, und das dann auf so einem Display wäre natürlich ein Traum.
Hast du auch einen PH Sensor @bimmi ? -
@gr inzwischen hab ich es mithilfe eines anderen Forummitglieds geschafft so wie ich es haben wollte! Danke trotzdem!
@Radi also bei mir funktioniert es auch gut. Ich kontrolliere allerdings hi und da Bilder auf meinem Webspace wo ich die Bilder ablege. Hast Du auf 40 Sekunden gestellt? Ich denke aber es liegt am Timing (https://github.com/jjwbruijn/OpenEPaperLink/wiki/Tag-protocol-timing)
wo wird denn dein Screenshot zwischengespeichert? unter /opt/iobroker/iobroker-data? schau mal da ist bei dir im Script der StoragePath angegeben mit "sView+ '.jpg'
-
@berndsolar13 sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
oh noch jemand der sich mit Hydroponik beschäftigt
Hab auch einen Hydro Tower mit dem ich gerade teste, die Erdbeeren blühen gerade.
Ultraschal Sensor ist da, und schon getestet, wegen Messung der Wasserhöhe im TankNächster Schritt wäre eine PH Messung, und das dann auf so einem Display wäre natürlich ein Traum.
Hast du auch einen PH Sensor @bimmi ?meine Erdbeeren hab ich vorbestellt und die kommen denke ich mitte April. Dieses Jahr war meine Erdbeerernte leider nicht so gut. Hatte viel mit Wurzelfäule zu kämpfen und der Hitze denke ich. Bin absoluter Anfänger und hab immer nur eine Saison Zeit zu lernen meine Hydro steht im freien!
Ich messe die Wasserhöhe im Tank mit einem Schwimmerschalter. Die PH Sonden sind mir zu teuer zumal die ja auch öfters getauscht werden müssen leider. Ich messe mit einem 5€ Messgerät.
-
alles klar, das gelbe ding aus deinem Bild hab ich auch, dachte an eines was ich in Iobroker einbinde.
Im Tower hatte ich bisher keine Wurzelfäule, da die Wurzeln ja direkt in der Luft hängen und nur alle 15 min kurz beregnet werden. Bisher sind sie aber auch erst 2 Monate drin, hab noch keine Langzeit ErfahrungÜberwache bisher nur die Pumpe, ob sie wirklich gepumpt hat, weil wenn die 2h nix abbekommen sind sie hin
-
@bimmi Ich nehme mal an, du meinst diese Einstellung des AP?
Ja, steht auf 40 Sekunden. Sollte man da was ändern? -
@radi welchen AP hast Du? Die ESP32 Mini haben wohl einen Layoutfehler. Da kann die Zigbee Antenne vom Display wohl einen Reset auslösen beim ESP.
Es wird empfohlen die Wifi Power auf das mindeste zu setzen je nachdem wie weit dein AP vom Router weg ist. Ich hab ihn ca. 2m vom Router an der Wand kleben und komme mit 2dbm gut zurecht!
Ansonsten, schau doch mal in das Verzeichnis ob Du da deine Screenshots findest? Es sieht so aus in dem Script, dass er nur eine Grafik erstellt und diese dann überschreibt mit dem nächsten Screenshot? Könnte das sein?
-
mein Blockly sieht so aus:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="=|-HU{v0HPlybOQ*ghcR">mypath</variable> <variable id="(O?~p(`|c|(KIhiht#i*">myurl</variable> <variable id="Kg9b=20h)E,riQJeDEcb">myheight</variable> <variable id="d?/+]%mL0t@pakXBBv]V">mywidth</variable> <variable id="ELianL7RIoI]6v](.5H{">clipx</variable> <variable id="v7~-E}:`3zaZ=MG;7P=[">clipy</variable> <variable id="WKu^.B?9T66xQ_qJgB@2">clipwidth</variable> <variable id="$JY/m%d:K3q{;2o7?$9r">clipheight</variable> <variable id="*^L*3Kju!MAP#u`QL(gE">myselector</variable> <variable id="8,q0AR=qke3-k-JCj-2U">quality</variable> </variables> <block type="procedures_defcustomnoreturn" id="{{Bl:d;+8eDTq,0~J9H2" x="938" y="113"> <mutation statements="false"> <arg name="mypath" varid="=|-HU{v0HPlybOQ*ghcR"></arg> <arg name="myurl" varid="(O?~p(`|c|(KIhiht#i*"></arg> <arg name="myheight" varid="Kg9b=20h)E,riQJeDEcb"></arg> <arg name="mywidth" varid="d?/+]%mL0t@pakXBBv]V"></arg> <arg name="clipx" varid="ELianL7RIoI]6v](.5H{"></arg> <arg name="clipy" varid="v7~-E}:`3zaZ=MG;7P=["></arg> <arg name="clipwidth" varid="WKu^.B?9T66xQ_qJgB@2"></arg> <arg name="clipheight" varid="$JY/m%d:K3q{;2o7?$9r"></arg> <arg name="myselector" varid="*^L*3Kju!MAP#u`QL(gE"></arg> <arg name="quality" varid="8,q0AR=qke3-k-JCj-2U"></arg> </mutation> <field name="NAME">macheScreenshot</field> <field name="SCRIPT">c2VuZFRvKCdwdXBwZXRlZXIuMCcsICdzY3JlZW5zaG90JywgeyANCg0KICAgIHVybDogbXl1cmwgLA0KDQogICAgcGF0aDogbXlwYXRoICwgDQoNCiAgICB3aWR0aDpteXdpZHRoLA0KDQogICAgcXVhbGl0eTpxdWFsaXR5LA0KDQogICAgaGVpZ2h0Om15aGVpZ2h0LA0KDQogICAgd2FpdE9wdGlvbjogew0KICAgIA0KICAgIC8vIHdhaXRmb3JUaW1lb3V0OiA1MDAwLA0KICAgIHdhaXRGb3JTZWxlY3RvcjpteXNlbGVjdG9yLA0KDQogICAgfSwNCg0KICAgIGZ1bGxQYWdlOiBmYWxzZSwNCg0KICAgIGNsaXA6IHsgICAgICAgICANCiAgICAgICAgeDogY2xpcHgsDQogICAgICAgIHk6IGNsaXB5LA0KICAgICAgICB3aWR0aDogY2xpcHdpZHRoLA0KICAgICAgICBoZWlnaHQ6IGNsaXBoZWlnaHQNCiAgICAgIH0NCn0pOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_callcustomnoreturn" id="a8y(c@2xKnJ~R;]2^j%W" x="938" y="163"> <mutation name="macheScreenshot"> <arg name="mypath"></arg> <arg name="myurl"></arg> <arg name="myheight"></arg> <arg name="mywidth"></arg> <arg name="clipx"></arg> <arg name="clipy"></arg> <arg name="clipwidth"></arg> <arg name="clipheight"></arg> <arg name="myselector"></arg> <arg name="quality"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="@$eoRt:vgP2{$;eeUch0"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Test.Display-Bildpfad</field> </block> </value> <value name="ARG1"> <block type="get_value" id="xlb5GgfuCSWL[Aergw[6"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Test.Display-Ziel-URL</field> </block> </value> <value name="ARG2"> <block type="math_number" id=";.b]=J)0}vs6=o(9/2N1"> <field name="NUM">0</field> </block> </value> <value name="ARG3"> <block type="math_number" id="ru$[j_Lxmk;?ir^-I?1u"> <field name="NUM">0</field> </block> </value> <value name="ARG4"> <block type="math_number" id="%D9jOfghJtgT{T{T7_sd"> <field name="NUM">0</field> </block> </value> <value name="ARG5"> <block type="math_number" id="AZ5@9Rh4%Q*{L9y9]_nY"> <field name="NUM">0</field> </block> </value> <value name="ARG6"> <block type="get_value" id="s$Lxum-=aMz`$(5TWW3%"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Test.Display-Breite</field> </block> </value> <value name="ARG7"> <block type="get_value" id="P%oRRt;f$Ke}@s`ANY}B"> <field name="ATTR">val</field> <field name="OID">00-ZUHAUSE.0.EPS.Test.Display-Höhe</field> </block> </value> <value name="ARG8"> <block type="text" id="{3cIh]jtoaLdIe)!9Vp+"> <field name="TEXT">#w00098</field> </block> </value> <value name="ARG9"> <block type="math_number" id="|nkrAt*)GrI|sQV(?^Bz"> <field name="NUM">100</field> </block> </value> </block> </xml>
-
ich nutze ein DFT System mit 110mm Rohren. Da sind meine Wurzeln immer im Wasser. Jedoch zusätzlich ca 4cm Luft für die Wurzeln. Meine Pumpe läuft durchgehend!
-
@bimmi So, ich habe mal ein wenig mit WinSCP gegrast und die Screenshots gefunden. Sie liegen unter /opt/iobroker/iobroker-data/files/0_userdata.0.
Die Bilder sehen gut aus.
Ich verstehe nicht, warum der AP meint, der Shot würde sich nicht vom Letzten unterscheiden und er müsste mal den einen oder anderen TAG nicht aktualisieren.Der Unifi-AP fürs Wlan ist ca. 5m und eine Wand entfernt.
Das Log des Openepaper-AP sieht so aus:
20:21:02 < 0000021F2xxxxxx reports xfer complete 20:21:02 < Block Request received for file /current/0000021F2xxxxxxx.pending block 2, len 1280 checksum 0 20:21:01 < Block Request received for file /current/0000021F2xxxxxxx.pending block 1, len 4096 checksum 30192 20:21:00 < Block Request received for file /current/0000021F2xxxxxxx.pending block 1, len 4096 checksum 30192 20:20:59 < Block Request received for file /current/0000021F2xxxxxxx.pending block 0, len 4096 checksum 35667 20:20:13 new image: /current/0000021F2xxxxxx.pending 20:20:12 Updating 0000021F2xxxxxx 20:20:12 new image is the same as current or already pending image. not updating tag. 20:20:12 Updating 0000021D30Fxxxxxx 20:20:12 Resending image //current/0000021C69Dxxxxxx.raw 20:20:12 new image is the same as current or already pending image. not updating tag. 20:20:12 Updating 0000021C69Dxxxxxx 20:20:12 Resending image //current/0000021ED4Cxxxxx.raw 20:20:12 new image is the same as current or already pending image. not updating tag. 20:20:11 Updating 0000021ED4Cxxxxx 20:11:01 < 0000021F2xxxxxx reports xfer complete
Er meint also wieder einmal, es hätte sich bei einigen Tags nichts geändert.
-
@radi wie gut ist denn dein Englisch? Ich würde dir den discord channel von den Entwicklern empfehlen. Die sind eigentlich sehr hilfsbereit.
-
@bimmi Na ja, ostdeutsches Schulenglisch mit leichtem Rostbelag. Bis jetzt hab ich mich aber immer verständlich machen können. Ist halt schon fast 50 Jahre her. Werde ich mir morgen mal antun, auch wenn ich mit Discord keinerlei Erfahrung hab. Wird schon schief gehen.
Danke für den Hinweis. -
@radi es gibt da auch einige die deutsch sprechen. Jedoch wird da bevorzugt auf englisch geredet. Der hauptentwickler ist auch aus Hannover.
Mit deep-L kommst du denke ich gut voran.
-
Da ich bei der aktuellen Firmware jetzt öfters die Fehlermeldung "409 Come back later" erhalte dachte ich mir, ich versuche es mal anders.
Und zwar kann der AP ja auch die JPG-Dateien selber vom ioBroker herunterladen. Eventuell ist das einfacher, als sie von iob immer auf den AP zu "schieben".
Das Skript wäre dann erstmal wie folgt:
function updateEPaperWithView(sView, sEPaperMac, imgWidth, imgHeight) { sendTo('puppeteer.0', 'screenshot', { url: 'http://localhost:8082/vis/index.html#' + sView, ioBrokerOptions: { storagePath: sView + '.jpg', }, waitOption: { waitForTimeout: 8000, }, viewportOptions: { width: imgWidth, height: imgHeight }, type: "jpeg", quality: 100 }, obj => { if (obj.error) { log(`Error taking screenshot: ${obj.error.message}`, 'error'); } else { //log('Sucessfully took screenshot'); } }); } function runEPaperUpdates() { updateEPaperWithView("epaper_pool", "0000021B4F30XXXX", 296, 128); updateEPaperWithView("epaper_solar_verbrauch", "0000021EEB8DXXXX", 296, 128); updateEPaperWithView("epaper_solar", "0000021B7710XXXX", 296, 128); } runEPaperUpdates(); schedule("*/1 * * * *", function () { runEPaperUpdates(); });
Im AP wählt man dann beim jeweiligen Tag die Funktion "Image URL" aus und nutzt als Adresse die des lokalen ioBrokers. Zum Beispiel http://iobroker.local:8082/0_userdata.0/epaper_solar.jpg
Der Dateiname entspricht dem Namen der View.
Als Interval kann man dann z. B. 3 (Minuten) angeben. Dies wäre auch das Minimum.
Vielleicht bringt es ja etwas
-
@oxident sagte in EPS E-INK Display Ansteuerung -> Statusdisplay für 2€:
Nun ja, was soll ich sagen? Dein neues Script läuft mit deutlich geringerer Prozessorlast und fuktioniert auch.
Allerdings scheitere ich diesmal am Abholen der erstellten Snapshots. Ich erhalte immer folgende Fehlermeldung im log des Openepaper-AP:16:35:41 http http://iobroker.local:8089/0_userdata.0/EPAPER_Solar.jpg -1 16:35:35 Updating 0000021F2xxxxxx
Ich vermute mal, er bekommt keinen Zugriff auf den Snapshot. Was mache ich falsch?
-
@radi Kannst Du denn exakt diese URL bei Dir auf dem Rechner aufrufen?
Falls ja, dann versuche doch mal anstelle iobroker.local die IP vom iobroker.
-
@oxident Nein, es geht weder so, noch mit der IP des IOBrokers, habe auch mit der anderen Port-Nummer probiert (habe eine zweite web-instanz). Deswegen die Frage nach meinem Fehler.
-
@radi Was sagt denn Dein Browser? Datei nicht gefunden?
Du kannst unter dieser Adresse aber Deine Vis erreichen, oder?
-
@oxident Habs gerade noch mal mit dem Port der zweiten web-Instanz probiert und siehe da ich bekomme im Browser eine Vorschau und der TAG wird mit der Einstellung aktualisiert. Vielleicht habe ich mich beim letzten mal irgendwo vertippt.
Danke noch mal für deine Unterstützung. Ich beobachte das Ganze jetzt erst mal. -
@radi Cool, das freut mich.
Denk auch daran, dass es ab und wann Updates für den AP gibt. Manchmal klappt danach zwar gar nix mehr, aber das Projekt entwickelt sich schnell weiter