Autor Thema: [70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker  (Gelesen 12424 mal)

Offline michael.winkler

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1289
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #120 am: 06 Dezember 2018, 07:20:49 »
Ich verwende diese Version: 2018-10-12, v0.0.11
Hast du das JSON Modul installiert?

Wenn nicht probier mal

sudo apt-get install libjson-perl

Offline jeti

  • Full Member
  • ***
  • Beiträge: 184
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #121 am: 06 Dezember 2018, 17:02:19 »
Bist du dir sicher dass der Port 5000 stimmt? Ansonsten mal ein Verbose 5 LOG erstellen
Wo kann ich den Port auf Octoprint nachsehen??? Ich finde es gerade nicht mehr  :o

und anbei der log:

Zitat
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_HD_HandleCmdQueue] - send command url = http://192.168.1.189:5000/api/printer?exclude=state,sd&apikey=xxx
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_HD_HandleCmdQueue] - send command data =
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_HD_HandleCmdQueue] - send command head = Content-Type: application/json
2018.12.06 17:07:31 4 : IP: 192.168.1.189 -> 192.168.1.189
2018.12.06 17:07:31 4 : HttpUtils: 192.168.1.189: Connection refused
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] called function
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] [readings_printer] Data =
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] [readings_printer] JSON =
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] [readings_printer] JSON = NODATA
2018.12.06 17:07:31 5 : OctoPrint JGaurora [OctoPrint_ReceiveCommand] ERROR = 192.168.1.189: Connection refused


 :-\ jetzt gehts, der Port 5000 war falsch, ohne Port Angabe gehts nun... Danke für den Tip!!
« Letzte Änderung: 06 Dezember 2018, 17:16:33 von jeti »

Offline JamesB

  • New Member
  • *
  • Beiträge: 13
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #122 am: 09 Dezember 2018, 06:18:46 »
Ja das Modul sollte richtig installiert sein:

libjson-perl ist schon die neueste Version (2.90-1).
Diesen Log habe ich mit Verbose=5 erstellt:

https://forum.fhem.de/index.php/topic,81929.msg866795.html#msg866795
ESXi - Debian / 2 x Raspberry PI 3 / CUNX / KS 300 / HM

Offline JamesB

  • New Member
  • *
  • Beiträge: 13
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #123 am: 09 Dezember 2018, 16:03:38 »
Problem Eingeschränkt. Der JSON String kann nicht dekodiert werden.

Fehler:
JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at ./FHEM/70_OctoPrint.pm line 258
Das dürfte im Zusammenhang mit dem HMCCU RPC-Server stehen. Auf einer 2. Maschine läuft das Modul. Den Fehler hatte ich schon mal in ähnlicher Form.


ESXi - Debian / 2 x Raspberry PI 3 / CUNX / KS 300 / HM

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 448
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #124 am: 16 Januar 2019, 11:45:14 »
ich würde gerne ein Notify nutzen.
Derzeit bekomme ich bei 0% 20% 40% 60% und 80% nen Bild der Cam.


Anscheinend springt er bei 100% gleicht auf fertig.
Was habt ihr für gute Ideen / Umsetzungen zum Notify DOIFs etc?
Internals:
   DEF        MarieLuise:progress_completion_percent:.* {
    if (Value($NAME) eq "Printing") {
        my $progressPercent = ReadingsNum($NAME, "progress_completion_percent", 0);
        if ($progressPercent % 20 == 0) {
            fhem("get 3DDruckerKamera image");
            fhem("sleep 2; set teleBot sendImage ./www/snapshots/3DDruckerKamera_snapshot.jpg Fortschritt: $progressPercent %");
        }
    }
}
   NAME       n_MarieLuiseProgressTelegram
   NOTIFYDEV  MarieLuise
   NR         603
   NTFY_ORDER 50-n_MarieLuiseProgressTelegram
   REGEXP     MarieLuise:progress_completion_percent:.*
   STATE      2019-01-16 08:40:10
   TRIGGERTIME 1547624410.84923
   TYPE       notify
   READINGS:
     2019-01-07 09:28:32   state           active
Attributes:
   group      Kellerlogik
   room       Logik
Userreading vom Drucker
userReadings progress_completion_percent { sprintf("%d", ReadingsNum($NAME, "progress_completion", 0)) }

Offline Christoph Morrison

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 694
  • Maintainer: holiday, Twilight
    • Private Website
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #125 am: 16 Januar 2019, 15:43:48 »
ich würde gerne ein Notify nutzen.
Derzeit bekomme ich bei 0% 20% 40% 60% und 80% nen Bild der Cam.

Steig auf DOIF um und nutze das State-Machine-Feature um ein Bild bei 0,20,40,..,100% zu schicken, aber bei 100%/fertig nur wenn vorher der 80%-Status wahr war.
Maintainer von:
holidays · 59_Twilight

Offline masterpete23

  • Full Member
  • ***
  • Beiträge: 448
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #126 am: 17 Januar 2019, 11:32:56 »
Ho das klingt kompliziert? Hättest du einen hilfreichen abwandelbaren Codeschnipsel?

Offline Christoph Morrison

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 694
  • Maintainer: holiday, Twilight
    • Private Website
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #127 am: 17 Januar 2019, 12:12:06 »
Ho das klingt kompliziert? Hättest du einen hilfreichen abwandelbaren Codeschnipsel?

Eigentlich ist das sogar ziemlich einfach ;). Ich hab hier einen Briefkasten mit zwei Sensoren (Klappe oben, Klappe unten). Wenn Post eingworfen wird (Klappe oben = auf) soll eine Nachricht gepusht und ein Todoist-Task angelegt werden. Aber: Wenn unten geöffnet wird und Post drin war, soll der Status zurück auf "leer" gesetzt werden (und eine Nachricht gepusht werden, dass sich jemand erbarmt hat den allfälligen Papiermüll zu entsorgen). Ich möchte aber auch keine Nachricht/Task haben jedesmal wenn Post nachträglich eingeworfen wird und noch keiner geleert hat, einmal reicht. Also muss man den Status des ganzen irgendwie vorhalten. Hier meine Lösung (das ist Version 2, Version 1 war ohne state machine fünfmal so umfangreich und immer buggy):

(ich konne die Definition hier eben nicht posten, da das Forum den Quellcode irgendwie bemängelt hat, aber mir nicht verraten wollte, wieso)

Der entscheidende Teil ist $cmd=~"0|2" - hiermit nagelst du den Automaten darauf fest, dass der Zustand nur geändert wird, wenn vorher ein anderer (0 = kein Zustand, 2 = ist leer) wahr war. Mit $cmd=~"1" lege ich fest, dass der zweite Teil nur dann wahr werden kann wenn auch Post eingeworfen wurde.

Die Abwandlung für den Drucker wäre, dass man jeweils prüft ob (progress = 20% und vorheriger status bzw. cmd_x == 0), (progress = 40% und vorheriger status bzw. cmd_x == 20% ), usw. Die state machine läuft dann immer nur von 0 bis 100 durch und fängt dann wieder von vorne an (deswegen nennt man die Dinger auch finite state machine (fsm) - endlicher Automat).
Maintainer von:
holidays · 59_Twilight

Offline retikulum

  • Jr. Member
  • **
  • Beiträge: 96
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #128 am: 22 Januar 2019, 12:28:34 »
Hi.
Ich nutze dein Modul regelmäßig. Einfach klasse!

Ich hätte aber ein Feature-Request:
Es wäre super, wenn es ein "set reset" geben würde, um ein Teil der Readings zurückzusetzen (Temperatur, Progress, job_file_xxx,...).
Oder, dass das automatisch zurückgesetzt wird, wenn Octoprint offline ist.
Momentan mache ichs mittels DOIF jeden einzelnen Wert zurücksetzen, wenn das Reading "online" dann "false" ausspuckt.

Ist nur, um die cfg ein wenig aufgeräumter zu halten :-)

Sorry, falls dieser Request hier bereits existiert und ichs überlesen haben sollte.

Offline retikulum

  • Jr. Member
  • **
  • Beiträge: 96
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #129 am: 22 Januar 2019, 12:32:59 »
Ich hab hier einen Briefkasten mit zwei Sensoren (Klappe oben, Klappe unten).

Ui, ich habs bisschen einfacher... Ein Sensor am Boden.. ein ausgeleierter Endstop meines Druckers. Und ein Stück Pappe drauf zugeschnitten als Boden.
Wenn Brief reinfällt wird der Sensor ausgelöst, wenn Briefkasten leer wird, entspannt sich der Sensor wieder. Über event-on-change-reading und schon hat man zwei Zustände gelesen/geloggt.

Offline mark79

  • Sr. Member
  • ****
  • Beiträge: 528
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #130 am: 03 April 2019, 17:26:47 »
Ich möchte ein Problem (Fhem Absturz) melden. Das Octoprint Modul oder Fhem kommt nicht so gut mit Sonderzeichen als Dateiname in der gcode Datei zurecht.

Simplyfi3d hat mir ein komisches Sonderzeichen (Rasierpin�elhallter.gcode) in den Dateinamen gehauen, welches in Octoprint hochgeladen wurde und Fhem ist darauf hin abgekackt mit folgender Fehlermeldung: Wide character at /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1/Encode.pm line 228.

Das hat einige Zeit gedauert, bis ich mal den Ursache gefunden habe... Geholfen hat ein "attr global verbose 5".

« Letzte Änderung: 03 April 2019, 17:28:44 von mark79 »
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, DashButtons, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten


Offline mark79

  • Sr. Member
  • ****
  • Beiträge: 528
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #132 am: 05 April 2019, 16:40:19 »
Hallo

Hast du die aktuelle Version im Einsatz?

Daran habe ich gar nicht gedacht... Ich habe eine etwas ältere Version:
Zitat
root@fhem:/opt/fhem/FHEM# cat 70_OctoPrint.pm
# $Id: 70_OctoPrint.pm 15133 2017-09-24 21:03:57Z michael.winkler $
############################################################################
# 2018-09-05, v0.0.10
#
# v0.0.10
# - BUGFIX:  Readings mit 0 wurden nicht geschrieben
# - CHANGE:  readingsBulkUpdateIfChanged to readingsBulkUpdate

Ich werde das updaten und dann noch mal ausprobieren.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, DashButtons, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Offline mark79

  • Sr. Member
  • ****
  • Beiträge: 528
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #133 am: 06 April 2019, 18:05:04 »
Hallo, mit der aktuellen tritt das Problem nicht mehr auf.
Sorry für den Trubbel, ich dachte ich wäre mit dem Modul up2date. :)


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, DashButtons, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Offline DasQ

  • Full Member
  • ***
  • Beiträge: 207
    • ich
Antw:[70_OctoPrint.pm] zum Steuern von OctoPrint 3D Drucker
« Antwort #134 am: 20 April 2019, 20:19:18 »
etwasw OT: gibts da irgend eine möglichkeit das mit dem MQTT2 server zu kombinieren?
mir erstellt es jedesmal ein neues MQTT2_device

das problem ist gelöst

https://forum.fhem.de/index.php/topic,99512.msg931945.html#msg931945
Dont drink and drive, if you can smoke and fly