MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-PythonPrint customisation

    Scheduled Pinned Locked Moved Solved Troubleshooting
    46 Posts 5 Posters 21.1k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R Offline
      RobCee @sdetweil
      last edited by

      @sdetweil super. thanks for the pointer.

      1 Reply Last reply Reply Quote 0
      • karsten13K Online
        karsten13 @sdetweil
        last edited by karsten13

        @sdetweil

        the docker image karsten13/magicmirror:latest doesn’t contain python. Simplest solution for this is to use the fat image karsten13/magicmirror:fat, for more infos: https://khassel.gitlab.io/magicmirror/images/

        S 1 Reply Last reply Reply Quote 1
        • S Do not disturb
          sdetweil @karsten13
          last edited by

          @karsten13 thanks… the doc needs help tho

          The difference between latest and fat is image size and installed

          those words are not used above that sentence, and so didn’t mean anything to me…

          I would propose adding in front of that sentence

          There are two images of each type created
          
          latest and fat 
          docker pull image_name:latest 
          or
          docker pull image_name:fat 
          

          and then I would add a new line between these sentences

          debian packages. For most use cases the latest image is sufficient. 
          Some modules need dependencies which are not includes in latest, e.g
          

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          karsten13K 1 Reply Last reply Reply Quote 0
          • karsten13K Online
            karsten13 @sdetweil
            last edited by

            @sdetweil

            yes, the docs … no native english speaker so docs are always a struggle. Thanks for the hints, will update …

            S 1 Reply Last reply Reply Quote 1
            • S Do not disturb
              sdetweil @karsten13
              last edited by

              @karsten13 and I missed the latest/fat under the TAG column of your table… tldr(lol), my apologies

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • R Offline
                RobCee
                last edited by RobCee

                @sdetweil I have started fresh and am still having the same issue.
                New install of buster, fully updated.
                Installed all the MM and node successfully.
                MM runs as expected.
                Checked that python and python3 are both available to the OS.
                Added the MMM-PythonPrint to the modules dir.

                [12.04.2022 11:22.45.613] [LOG]   MMM-PythonPrint received a socket notification: CONFIG - Payload: [object Object]
                [12.04.2022 11:22.45.619] [ERROR] Whoops! There was an uncaught exception...
                [12.04.2022 11:22.45.640] [ERROR] ReferenceError: _this is not defined
                    at Class.startit (/home/pi/MagicMirror/modules/MMM-PythonPrint/node_helper.js:27:24)
                    at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-PythonPrint/node_helper.js:46:9)
                    at Socket.<anonymous> (/home/pi/MagicMirror/js/node_helper.js:109:11)
                    at Socket.emit (node:events:390:28)
                    at Socket.emitUntyped (/home/pi/MagicMirror/node_modules/socket.io/dist/typed-events.js:69:22)
                    at /home/pi/MagicMirror/node_modules/socket.io/dist/socket.js:466:39
                    at processTicksAndRejections (node:internal/process/task_queues:78:11)
                

                This is my config section:

                		{
                			module:"MMM-PythonPrint",
                			position:"center",
                			disabled:false,
                			config: {
                				// name of the python process to execute (could be python3)
                				pythonName: 'python',
                				// command file in module folder
                				// if false, YOU will provide the full path to the python program
                				localfolder: true,
                
                				// spawn a python pgm that writes over and over (timed maybe), but keeps running
                				command: 'printit.py',
                				repetative: true,
                
                				// spawn a one time output  script, but relaunch it every cycletime milliseconds
                
                				// repretative: false,
                				// command: 'printitonce.py',
                				cycletime: 2000,
                
                				// print debugging messages from the node_helper
                				debug: true
                			}
                		 },
                
                S 1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @RobCee
                  last edited by

                  @RobCee weird, sorry, typo… fixed

                  git pull to get the update

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  R 1 Reply Last reply Reply Quote 0
                  • R Offline
                    RobCee @sdetweil
                    last edited by

                    @sdetweil I found another, just up from that one - you have a missing ‘t’ in this line

                    this.config.command=this.config.command.slice(his.config.pythonName.length)
                    
                    S 1 Reply Last reply Reply Quote 0
                    • S Do not disturb
                      sdetweil @RobCee
                      last edited by

                      @RobCee fixed… bad day at the finger farm…yikes sorry

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • R Offline
                        RobCee
                        last edited by

                        But even with that _ removed, I am still getting an odd error:

                         TypeError: this.file is not a function
                        
                        S 1 Reply Last reply Reply Quote 0
                        • S Do not disturb
                          sdetweil @RobCee
                          last edited by

                          @RobCee ok, fixed, tested… sorry again
                          git pull

                          Sam

                          How to add modules

                          learning how to use browser developers window for css changes

                          R 1 Reply Last reply Reply Quote 0
                          • R Offline
                            RobCee @sdetweil
                            last edited by

                            @sdetweil - apologies not necessary - I am just happy you are able to look at it.

                            Hurrah! It works!

                            1 Reply Last reply Reply Quote 0
                            • D Offline
                              diemen112
                              last edited by

                              i have also the MM os and i try to make it work
                              I have added - /usr/bin/python3:/usr/bin/python3 to the docker compose
                              and now i have the error

                              [15.07.2022 14:23.42.599] [LOG]   MMM-PythonPrint received a socket notification: CONFIG - Payload: [object Object]
                              [15.07.2022 14:23.42.602] [LOG]   PythonPrint spawning /opt/magic_mirror/modules/MMM-PythonPrint/print_test.py using python3
                              [15.07.2022 14:23.42.686] [LOG]   PythonPrint program error=Could not find platform independent libraries <prefix>
                              Could not find platform dependent libraries <exec_prefix>
                              Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
                              Fatal Python error: initfsencoding: unable to load the file system codec
                              ModuleNotFoundError: No module named 'encodings'
                              
                              Current thread 0x76fb37a0 (most recent call first):
                              

                              a played around with adding $PYTHONHOME to env but without any result
                              does anyone know a work around to find the libraries?

                              S karsten13K 2 Replies Last reply Reply Quote 0
                              • S Do not disturb
                                sdetweil @diemen112
                                last edited by sdetweil

                                @diemen112 I think this answers
                                https://askubuntu.com/questions/905372/could-not-find-platform-independent-libraries-prefix

                                running under docker is a fun experience?

                                did u install python as part of the container startup?

                                Sam

                                How to add modules

                                learning how to use browser developers window for css changes

                                1 Reply Last reply Reply Quote 0
                                • karsten13K Online
                                  karsten13 @diemen112
                                  last edited by

                                  @diemen112 said in MMM-PythonPrint customisation:

                                  I have added - /usr/bin/python3:/usr/bin/python3 to the docker compose

                                  this will not work. You have to use the fat image, see my post above (Apr 11)

                                  1 Reply Last reply Reply Quote 0
                                  • D Offline
                                    diemen112
                                    last edited by diemen112

                                    Thank you for the help,
                                    I made it work with adding some python dependent directory’s to the docker-compose file

                                    1 Reply Last reply Reply Quote 1
                                    • kayakbabeK Offline
                                      kayakbabe
                                      last edited by kayakbabe

                                      Sam,

                                      Thank you for this MMM-PythonPrint. More than the sample module this really helped me follow how to wrap my head around how the script.js node_helper and anything else work together. The way you worded the variables and the input and output text really made sense and made it easy to follow what is happening. I am learning a lot. Again, Thank you.

                                      Kelly

                                      S 1 Reply Last reply Reply Quote 1
                                      • S Do not disturb
                                        sdetweil @kayakbabe
                                        last edited by

                                        @kayakbabe awesome, glad it helped!

                                        Sam

                                        How to add modules

                                        learning how to use browser developers window for css changes

                                        kayakbabeK 1 Reply Last reply Reply Quote 0
                                        • kayakbabeK Offline
                                          kayakbabe @sdetweil
                                          last edited by

                                          @sdetweil I’m looking at the configuration variable repetative and trying to figure out what it is for.

                                          is this correct logic for true and false?

                                          repetative: true
                                          if your python script runs in a loop forever by itself so the spawn in node helper will just keep its connection to the python script open

                                          repetative: false
                                          if your python script runs one time, and you need node_helper to keep spawning over and over so you can get the info from the python script over and over

                                          S 1 Reply Last reply Reply Quote 0
                                          • S Do not disturb
                                            sdetweil @kayakbabe
                                            last edited by sdetweil

                                            @kayakbabe so , maybe your python script starts and runs, prints one line, and ends. current temp is x

                                            is that all you want your module to present, one line?

                                            or do you want the output every few seconds minutes

                                            this is repetative:false, but my module will rerun the script every cycle time milliseconds

                                            but some python scripts do that internally.

                                            print, sleep, print, sleep, print, sleep, print…

                                            this is repetative: true
                                            my module will just start the python script

                                            there are two different ways to capture the output

                                            should have named parm

                                            script_is_long_running

                                            I provided a sample of each

                                            also, in many cases, you are using someone else’s script and don’t have control over how it works, and don’t want to rewrite it

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            1 Reply Last reply Reply Quote 1

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy