NEWS
[UMFRAGE] Besteht Interesse an einem Octoprint Adapter
-
Ich lasse meinen OctoPI immer laufen! Ist ja auch eine Webcam dran.
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="on_ext" id="jPa+e-oTwuMvqkll9^O" x="-813" y="12"><mutation items="1"></mutation> ! <field name="CONDITION">any</field> ! <value name="OID0"><shadow type="field_oid" id="#~L@//vxg^Qj1yk^s0Dr"><field name="oid">octoprint.0.printer_status</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="._o/ONn*+[M/6a)71hk
"><value name="IF0"><block type="logic_operation" id="(#Jr7fU}F-YgawY4AXN"><field name="OP">OR</field> ! <value name="A"><block type="time_compare_ex" id="5b9i5YT~c7W4HPj^0MT("><mutation end_time="false" actual_time="true"></mutation> ! <field name="USE_ACTUAL_TIME">TRUE</field> ! <field name="OPTION">>=</field> ! <value name="START_TIME"><shadow type="text" id="S@6jX5*)9FB+d^z;;{w6"><field name="TEXT">23:59</field></shadow></value></block></value> ! <value name="B"><block type="time_compare_ex" id="vHSusy2bh[7!@fUazZVi"><mutation end_time="false" actual_time="true"></mutation> ! <field name="USE_ACTUAL_TIME">TRUE</field> ! <field name="OPTION"><</field> ! <value name="START_TIME"><shadow type="text" id="^;CH.q|?SzlD%RK8ucn="><field name="TEXT">06:00</field></shadow></value></block></value></block></value> ! <statement name="DO0"><block type="controls_if" id="I#P*fomL?a.ZDnXEkY8?"><value name="IF0"><block type="logic_operation" id="Z^s-E?4m3c~=SU][PGra"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id=".m8Nml1u){wi32;T1N^a"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="YoEpwvs|pr)4^ObMZQC6"><field name="ATTR">val</field> ! <field name="OID">octoprint.0.printer_status</field></block></value> ! <value name="B"><block type="text" id="T.UAy5NUX,h2C1BfV_Ao"><field name="TEXT">Operational</field></block></value></block></value> ! <value name="B"><block type="logic_compare" id="~,SCVn~FVTWIKWFWoHI]"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="iI~q^ah
H;(DsU/UICg*"><field name="ATTR">val</field>
! <field name="OID">octoprint.0.printjob.progress.completion</field></block></value>
! <value name="B"><block type="math_number" id="1Ed%TcuUcQj_4e;.U+1"><field name="NUM">100</field></block></value></block></value></block></value> ! <statement name="DO0"><block type="control" id="YS0
5]`T?AS5K{){~dU)"><mutation delay_input="true"></mutation>
! <field name="OID">hs100.0.192_168_0_37.state</field>
! <field name="WITH_DELAY">TRUE</field>
! <field name="DELAY_MS">15</field>
! <field name="UNIT">min</field>
! <field name="CLEAR_RUNNING">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="J|tC)Ni#xF.E,FI^T?Ca"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></statement></block></xml>so habs ich gelöst mit einer Funksteckdose.
Mein Ansatz war allerdings nach Fertigstellung den Strom vom Drucker abzudrehen.
Für eine Heatbed Kühlung hab ich folgendes Script:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="on_ext" id="jPa+e-oTwuMvqkll9^O" x="-838" y="-212"><mutation items="1"></mutation> ! <field name="CONDITION">ge</field> ! <value name="OID0"><shadow type="field_oid" id="#~L@//vxg^Qj1yk^s0Dr"><field name="oid">octoprint.0.printjob.progress.completion</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="I#P*fomL?a.ZDnXEkY8?"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_operation" id="~ftt,d@stkd2i5zAjs{_"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="T0}MDoyC~T8l6*E|{o%p"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="+[8/RUdI!YGO}(qoiJ]h"><field name="ATTR">val</field> ! <field name="OID">octoprint.0.printer_status</field></block></value> ! <value name="B"><block type="text" id="j.|T%K,;mL%icwh.{n#v"><field name="TEXT">Operational</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id=".a-Usz}7USy}KC(Kk2u9"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="D^tb-I9eN{]I3
mRwD^k"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="HlkW!uTky~eLeGKRX3t7"><field name="ATTR">val</field>
! <field name="OID">octoprint.0.printjob.progress.completion</field></block></value>
! <value name="B"><block type="math_number" id="7WW^GA7H+@t+sph%zr4G"><field name="NUM">100</field></block></value></block></value>
! <value name="B"><block type="logic_compare" id="-3:?gg2eElcMjCxc}{3Q"><field name="OP">GTE</field>
! <value name="A"><block type="get_value" id="_hUW0+_g2OBskGG[.542"><field name="ATTR">val</field>
! <field name="OID">octoprint.0.temperature.bed.actual</field></block></value>
! <value name="B"><block type="math_number" id="z;EA^t5-R/@~7)O7Lu-"><field name="NUM">30</field></block></value></block></value></block></value></block></value> ! <statement name="DO0"><block type="control" id="YS0
5]T?AS5K{){~dU)"><mutation delay_input="false"></mutation> ! <field name="OID">hs100.0.192_168_0_38.state</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="J|tC)Ni#xF.E,FI^T?Ca"><field name="BOOL">TRUE</field></block></value></block></statement> ! <value name="IF1"><block type="logic_operation" id="Z^s-E?4m3c~=SU][PGra"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id=".m8Nml1u){wi32;T1N^a"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="YoEpwvs|pr)4^ObMZQC6"><field name="ATTR">val</field> ! <field name="OID">hs100.0.192_168_0_38.state</field></block></value> ! <value name="B"><block type="logic_boolean" id="#Ev3)B2II(x6[Ai!H-9|"><field name="BOOL">TRUE</field></block></value></block></value> ! <value name="B"><block type="logic_compare" id="{X~?!War1q8dHJ,.v4!C"><field name="OP">LT</field> ! <value name="A"><block type="get_value" id="c{mvK@X3,QocT-XF4e(D"><field name="ATTR">val</field> ! <field name="OID">octoprint.0.temperature.bed.actual</field></block></value> ! <value name="B"><block type="math_number" id="Uh2,[IS#g_
AR=6#;[*S"><field name="NUM">30</field></block></value></block></value></block></value>
! <statement name="DO1"><block type="control" id="rjF]fs/UKg/4YLqu(0D("><mutation delay_input="false"></mutation>
! <field name="OID">hs100.0.192_168_0_38.state</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="logic_boolean" id="b8+71vK6N~LuDm|1BB0#"><field name="BOOL">FALSE</field></block></value>
! <next><block type="controls_if" id="}]h)9l5:Gpj^):JV2GQq"><value name="IF0"><block type="time_compare" id="GC3SlU0i7t.}V+m9RG08"><mutation end_time="true"></mutation>
! <field name="OPTION">not between</field>
! <field name="START_TIME">12:00</field>
! <field name="END_TIME">16:00</field></block></value>
! <statement name="DO0"><block type="timeouts_settimeout" id="]}CW5/+ulF8RBd4/hiIh"><field name="NAME">timeout</field>
! <field name="DELAY">1</field>
! <field name="UNIT">min</field>
! <statement name="STATEMENT"><block type="sayit" id="9g)j7uw_cOp,FUauB;;b"><field name="INSTANCE">.1</field>
! <field name="LANGUAGE">de-DE_CLOUD_Female</field>
! <value name="VOLUME"><block type="math_number" id="2O@ecO97hTtuzKrAw6e`"><field name="NUM">20</field></block></value>
! <value name="MESSAGE"><shadow type="text" id=";gH[}uvuo:NmexNlEYmX"><field name="TEXT">Der Drucker ist fertig</field></shadow></value></block></statement></block></statement></block></next></block></statement></block></statement></block></xml> -
Du kühlst das Bett runter damit du nach dem Druck schneller das Druckobjekt runter nehmen kannst? War mir zuviel Energie/Zeitverschwendung. z.Z verwende ich 2 3mm-Glasplatten im wechsel. Wobei beide jetzt so starke Abplatzungen haben - nicht mehr zu gebrauchen. Werde jetzt erst mal auf https://www.ebay.de/i/263744832921?chn=ps&var=562948292029 umsteigen. zu CFK kann ich immer noch wechseln wenn sich das nicht bewährt.
wegen der picam bin auch noch am überlegen ob ich den octopi vielleicht doch an lasse.
Etwas abgewandelt soll diese https://paolonegrini.wordpress.com/ mit in den Druckerschrank, Durch die Glastür könnte sie dann auch noch Überwachungsaufgaben machen in Abwesenheit.
Mit VIS habe ich noch nicht all zuviel gemacht, für den Anfang reicht mir die Einbindung als iFrame.
Ansicht vom Enclosure-Plugin (DHT22 und 2-fach-Relaymodul)
Statistikwerte: Strom/Materialkosten möchte ich dann auch noch in die View einbauen. Button [Statistik] neben dem "Hauptschalter" für popUp mit den Werten. -
Das Ausschalten habe ich über einen Sonoff Pow mit folgendem Script gelöst:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="+A7wlutQO8gBfqosc.y3" x="-412" y="-12"><mutation items="1"></mutation> <field name="CONDITION">any</field> <value name="OID0"><shadow type="field_oid" id="L[i=p{|ii-ai*/YAZ@8s"><field name="oid">sonoff.0.Sonoff-Pow-3D.ENERGY_Power</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="V6]e:v6u:?I_dnQ6L_VO"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="YL]^MiM0C_d90EjXd7qr"><field name="OP">GT</field> <value name="A"><block type="get_value" id="yM=9zWrslsViHeXAVGm6"><field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-Pow-3D.ENERGY_Power</field></block></value> <value name="B"><block type="text" id="H=g~S*6(?G/uCr~jDdCp"><field name="TEXT">10</field></block></value></block></value> <statement name="DO0"><block type="control" id="vs.J|^}}{M%%SJ1bpk;V"><mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Sonoff-Pow-3D.3D-Drucker-fertig</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="gvfoVV5t!!Us3^C~!w.H"><field name="BOOL">FALSE</field></block></value> <next><block type="timeouts_cleartimeout" id="apiURFCkyZ5BN6NO=/fL"><field name="NAME">timeout</field></block></next></block></statement> <value name="IF1"><block type="logic_compare" id="M~uV)}gj0R1:#*W8;u|_"><field name="OP">LT</field> <value name="A"><block type="get_value" id=";C4ZX5Zy!7cKvi8im7j~"><field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-Pow-3D.ENERGY_Power</field></block></value> <value name="B"><block type="text" id="qZr5=RgO[|.`JAG]=%:e"><field name="TEXT">10</field></block></value></block></value> <statement name="DO1"><block type="control" id="W@d-F3O_9HHWW#dCNkL="><mutation delay_input="false"></mutation> <field name="OID">sonoff.0.Sonoff-Pow-3D.3D-Drucker-fertig</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="A4H}`x`xaT~u.qw:OMjO"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> <next><block type="on_ext" id="u:R0u7j.Y,8EdsUCK6kQ"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="jgpdw:j!HF59WUplmK}~"><field name="oid">sonoff.0.Sonoff-Pow-3D.3D-Drucker-fertig</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="0KU30/v2h#W(!`#[gp76"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_compare" id="]-Zb+?Hn_!lMC-aT9alk"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="ln#_*!,/omF%2!L4WRp-"><field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-Pow-3D.3D-Drucker-fertig</field></block></value> <value name="B"><block type="logic_boolean" id="pSN^b91_Se1kc2o;W4J^"><field name="BOOL">FALSE</field></block></value></block></value> <value name="IF1"><block type="logic_compare" id="21(9~CU|XRCn:EOXk2/@"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="TSvo:2H{H+}IE{#M1`FO"><field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-Pow-3D.3D-Drucker-fertig</field></block></value> <value name="B"><block type="logic_boolean" id="h=.8?l5o{aiN|)W)LXh@"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO1"><block type="timeouts_settimeout" id="m8BV9!UXyNHrGQ_tsyG0"><field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="telegram" id="ed05d|bQf^sw*MK?SR-6"><field name="INSTANCE">.0</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="sKyyX,f?IkAZP`RFQReF"><field name="TEXT">Die Waschmaschine ist fertig :)</field></shadow> <block type="text_join" id=":?(LV%}eMmeGg5)=s63{"><mutation items="4"></mutation> <value name="ADD0"><block type="text" id="Me[sfL:79y?isrCAn~-e"><field name="TEXT">Der 3D-Drucker ist fertig :)</field></block></value> <value name="ADD1"><block type="text" id="0bN](j4?-62PDxGTFs`K"><field name="TEXT">Und du hast heute</field></block></value> <value name="ADD2"><block type="get_value" id="5nYhH(Z-[f`G*,+qIZ;H"><field name="ATTR">val</field> <field name="OID">sonoff.0.Sonoff-Pow-3D.ENERGY_Today</field></block></value> <value name="ADD3"><block type="text" id=",nn}rYrBfCaxgJPdJkp7"><field name="TEXT"> kWh beim Drucken verbraucht.</field></block></value></block></value> <next><block type="control" id="avhQpydDr.5IS5{OBum-"><mutation delay_input="true"></mutation> <field name="OID">sonoff.0.Sonoff-Pow-3D.POWER</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">30</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="QK@ta){*BlJ.2HOiu`N0"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></statement></block></next></block></xml>
Schön wäre natürlich wenn er den Raspi noch sauber runter fahren würde.
Wie kann man das noch einbinden?
-
Hallo Kollegen,
habe mich gerade ganz eifrig durch den Fred gelesen.
Da ich nun ebenfalls mit dem "Hobby 3D Druck" anfange, möchte ich gerne in einem der nächsten Schritte Octoprint in den Broker bringen.
Gibt es mittlerweile schon eine weitere Version des Adapters?
Gruß Sascha
-
Hallo Sascha,
an dem Adapter wird scheinbar schon länger nicht mehr gearbeitet. letzter Fork scheint dieser zu sein
https://github.com/resper/ioBroker.octoprint
cu xbow42
-
Hallo Xbow,
herzlichen Dank für Deine Antwort.
Leider macht der Adapter hinter dem Link auch nichts.
Installation läuft durch, er ist dann unter Adaptern ersichtlich, legt jedoch weder irgeneine Instanz oder Objekt an.
Werde dann mal zwischenzeitlich versuchen über MQTT einen Weg zu finden.
Danke!
Gruß Sascha
-
….
Leider macht der Adapter hinter dem Link auch nichts.
Installation läuft durch, er ist dann unter Adaptern ersichtlich, legt jedoch weder irgeneine Instanz oder Objekt an. `
Ich hab das gleiche Problem. Hab jetzt alle Forks durch, keiner erstellt ne Instanz. iobroker upload octoprint klappt auch nicht, zig mal neu und drüber installiert = ohne Erfolg
ich hab mal nen issue auf git auf gemacht.
-
Hallo zusammen,
habe es gerade installiert, funktioniert.
Die Instanz hatte auch gefehlt, unter den Adaptern in der Zeile von OctoPrint kann man mit dem Plus Icon eine Instanz hinzufügen.
Unter den Einstellungen musste ich noch den API Key eintragen und den Port auf 80 ändern.
Eventuell hilft euch dies weiter.
Grüße
Uwe
-
Hallo zusammen,
dieser Thread ist zwar schon etwas älter, aber ich habe erst vor ca. 3 Monaten einen 3D-Drucker (Anicubic Mega S) in Betrieb genommen und den octoprint-Adapter installiert. Läuft soweit alles prima.
Eine Frage/Bitte hätte ich an die Adapter-Entwickler:
Läßt sich das Abfrage-Intervall des Adapters irgendwo ändern?
Die voreingestellten 60000 Sek. = 1 Min. sind mir zu lang.Ich hatte mir auf GitHub die datei main.js angesehen, in der folgender Code enthalten ist:
function main() { adapter.subscribeStates('*'); adapter.setState('printer_status', {val: printerStatus, ack: true}); // Refresh State every Minute refreshState(); setInterval(refreshState, 60000); }
Damitwird wohl das Refresh-Intervall festgelegt.
Dann habe ich versucht, diese Datei, bzw. den String "setInterval(refreshState, 60000);" auf dem ioBroker-Raspi zu finden, leider erfolglos.Kann mir jemand sagen, wo ich diese Datei finde, bzw., wie ich anderweitig das Abfrage-Intervall des octoprint-Adapters ändern kann?
Gruß und Danke
Jörg -
Die Datei findest du in /iobroker/nodem_modules/iobroker.octoprint
-
@Jey-Cee
Danke!
Habe die Datei gefunden.
Werde sie morgen mal editieren und testen.Gruß
Jörg -
@Jey-Cee
ich habe mal in der Datei /iobroker/nodem_modules/iobroker.octoprint/main.js das setInterval von 60000 ms auf 5000 ms herabgesetzt:function main() { adapter.subscribeStates('*'); adapter.setState('printer_status', {val: printerStatus, ack: true}); // Refresh State every 5 seconds refreshState(); setInterval(refreshState, 5000); .......
Danach die octoprint.0-Instanz neu gestartet !!! (wichtig)
Funktioniert !
Ergo werden die Stati (Temperaturen, Druckfortschritt, etc.) im vis-View jetzt alle 5 Sekunden aktualisiert.Danke nochmals
Jörg -
bekomme im octoprint keine length vom filament angezeigt!
ich slice mit Simplify3D vielleicht liegt es daran?hat jemand eine idee?
-
@bishop
Filament-length wird bei mir auch nicht angezeigt ( mit Cura gesliced).Ich hatte auch mal in Octoprint ein Plugin zur Verwaltung der vorhandenen Filament-Rollen eingebunden,
wo man z.B. eintragen kann, von Filament-Rolle xy, rot, sind noch soundsoviel vorhanden.
Aber auch mit diesem Plugin wurden keine Längen angezeigt.
Mir war es auch zu aufwändig immer den Rollenbestand manuell zu pflegen, ergo habe ich das Plugin wieder deinstalliert.Anscheinend wird der Adapter auch nicht mehr gepflegt.
Gruß
Jörg -
hm..
schade, die Stromkosten werden mir schon ausgerechnet.
Mit dem DP length könnte man die kompletten kosten des gedruckten Modelles ausrechnen lassen!komisch ist ja das es den DP gibt aber nicht gefüllt wird.
-
@bishop
Wie ermittelst Du die Stromkosten?Ich könnte meine Kosten auch mit einer "intelligenten" Steckdose ermitteln.
Ich verwende zum Einschalten des 3D-Druckers nebst OctoPrint-Raspi eine Shelly Plug S - WLAN-Steckdose
Siehe auch meine Skizze/Fotos hier im Forum : 3D Drucker für den Einstieg
Der Zwischenstecker gibt auch den Momentanverbrauch und Gesamtenergie in ioBroker aus.
Mit etwas JavaScript könnte man damit wahrscheinlich auch den Energieverbrauch pro Druckmodell ermitteln.
In etwa so: --> (Gesamtverbrauch - alter Verbrauch) = Energieverbrauch für aktuelles Modell.
Über den Energieverbrauch könnte ich mir dann zumindest die Stromkosten für das aktuelle Modellberechnen.Aber - ehrlich gesagt - will ich gar nicht wissen
-
Gerade installiert und scheint super zu laufen.
Musste port auf 80 einstellen (habe ein SD Karten image von octopi verwendet) und hat sich sofort verbunden. Objekte werden auch brav gefüllt.
Jetzt muss ich mir nur noch ein Blockly schreiben das zwischen 21 und 6 uhr wenn der druck fertig ist und die nozzle runtergekühlt ist den Drucker ausschaltet.
Mach ich das mit nem zweiten trigger oder ganz stumpf einfach 10 minuten warten und dann den sonoff vom Strom nehmen?
-
@Webranger
Warum zwischen 21:00 und 06:00 Uhr?
Wenn Du nur den Drucker ausschalten willst, reicht es m.E. aus, Du triggerst wenn Druckfortschritt = 100% und Nozzle-Temp ≤ 50 Grad.Wenn Du allerdings auch den Raspi, auf dem Octoprint làuft, ausschalten willst, solltest Du ihm nicht einfach "den Saft abdrehen".
Da wird dann wahrscheinlich bald die SD-Karte defekt sein.Such hier im Form mal nach "shutdown -h now", das ist der Befehl, um den Raspi "sauber" herunter zu fahren.
-
@joergeli über ein sonoff pow, so wie du auch denke ich.
@Webranger so z.b.
[Link Text](https://forum.iobroker.net/topic/25032/einen-pi3-durch-iobroker-herunterfahren/3)
so siehts bei mir aus!
wenn bedarf besteht kann ich es auch noch exportieren. -
@joergeli Der Raspi bleibt an und nur der Drucker wird ausgeschaltet.