MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord
    1. Home
    2. AgP42
    A
    • Profile
    • Following 0
    • Followers 2
    • Topics 5
    • Posts 75
    • Best 13
    • Controversial 0
    • Groups 2

    AgP42

    @AgP42

    Project Sponsor Module Developer

    21
    Reputation
    1846
    Profile views
    75
    Posts
    2
    Followers
    0
    Following
    Joined Last Online

    AgP42 Unfollow Follow
    Project Sponsor Module Developer

    Best posts made by AgP42

    • MMM-iFrame-Ping

      Hello,

      after struggling with existing iFrame modules, I decided to create my own…

      Here are some other iFrame module :

      • iFrame from desertblade : the original one with basics functions : one URL, no periodic refresh
      • MMM-iFrame from alberttwong : allow several rotating URL but no periodic refresh of the content
      • MMM-iFrameReload from TheBogueRat : one possible URL with periodic refresh

      The functionnalities of my new iFrame module :

      • Allow periodic refresh of the iFrame, or not (configurable), this allow to display images (with refresh) or video (without refresh)
      • Ping the URL before trying to display the content. Display an error (with the last successful PING date and time) if the host is not reachable. PING code from MMM-Ping by CFenner
      • If a PIR-sensor using MMM-PIR-Sensor module is used, the iFrame will not be updated during screen off (this behavior works also with all other module that send the notification “USER_PRESENCE”) and will be refresh with screen on.
      • If the iFrame-Ping module is hidden (by REMOTE-CONTROL or any Carousel module for example), the iFrame will not be updated. As soon as one MMM-iFrame-Ping module will be again displayed on the screen, an update will be requested.
      • Possibility to display the date and time of the last update request (configurable)
      • CSS file

      I tested it with MM² version 2.4.1.

      I hope it can also be helpful for others, please let me know any issue.

      Some screenshot :
      Display YouTube :
      0_1532871282781_MMM-iFrame-Ping_youtube_update.png

      Display camera snapshot (with updates) :
      0_1532871357269_MMM-iFrame-AgP.png

      PING Nok :
      0_1532871391253_MMM-iFrame-Ping_Nok_with update display.png

      PING Ok, iFrame upload on-going :
      0_1532871408913_MMM-iFrame-Ping_ok.png

      All infos and installation instruction :

      posted in Utilities
      A
      AgP42
    • MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      Dear all,

      Following several requests on my previous module MMM-iFrame-Ping, I have created a new one on the same topic (= web display using iFrame object) with different functionalities, see a comparison at the end.

      Functionalities of this module :

      • Several rotating URLs, it is possible to change the URL to display through :
        • a timer (configurable)
        • through notification by any other module
        • by http request (using MMM-RemoteControl)
        • by a fork (modification) of MMM-RemoteControl that add a menu to control MMM-SmartWebDisplay, see screenshot bellow
      • Periodic refresh of the URL, or not (configurable), this allow to display images or video
      • Allow to receive notification for the following actions :
        • Change the URL or the list of URLs to displays, and update refresh timer value and rotating timer value (This mean that you can change the video to display on your mirror by sending a message from your phone or PC)
        • Go to the next/previous URL of the list
        • Play/Pause/Stop the update and rotation of URLs
          These notifications can by sent by several other MM module and also (thanks to MMM-RemoteControl) by external http request, as for example IFTTT or Tasker (Android)
      • If a PIR-sensor using MMM-PIR-Sensor module is used, the display will not be updated during screen off (this behavior works also with all other module that send the notification “USER_PRESENCE”) and will be refresh with screen on.
      • If the MMM-SmartWebDisplay module is hidden (by MMM-RemoteControl or any Carousel module for example), the URL display will not be updated. As soon as one MMM-SmartWebDisplay module will be again displayed on the screen, an update will be requested.
      • Possibility to display the date and time of the last update request (configurable)
      • Possibility to declare several instances (but so far the notification will address all the instances together)
      • CSS file

      Screenshot :
      The module displaying YouTube :
      0_1549819278573_MMM-SWD-YouTube.png

      Modification of the module MMM-RemoteControl to allow controling MMM-SmartWebDisplay :
      0_1549819312002_RemoteSWD.png 0_1549819318667_RemoteSWD_2.png

      Comparison MMM-iFrame-Ping VS MMM-SmartWebDisplay :

      Advantage MMM-iFrame-Ping :

      • only display content if reachable and display the last date and time it was reachable

      Advantages MMM-SmartWebDisplay :

      • Several instances
      • Several URL with auto rotation possible
      • Notification to send new URL to display and to manage Next/Previous/Play/Pause/Stop commands
      • Special version of MMM-RemoteControl to allow Next/Previous/Play/Pause/Stop commands easily

      Bugs and next to code:

      • Being able to send the new URL through MMM-RemoteControl
      • Manage the notification with several instances (to send the notification only to one instance and not all)
      • Any other idea ??

      v2.0 - oct 2019

      • Add support of MMM-TelegramBot to send commands to the module

      All infos and installation instruction :

      And the modified version of MMM-RemoteControl :

      posted in Utilities
      A
      AgP42
    • RE: Solved - Several module instances with one node_helper

      Hi,

      I answer to myself as I could find the origin of the problem and correct it, maybe it could help others (as I didn’t see that implemented on many other module 😉 )

      So the problem is documented on the developper doc here :

      On socketNotificationReceived: function(notification, payload) part :

      Note 1: When a node helper sends a notification, all modules of that module type receive the same notifications.

      On this.sendSocketNotification(notification, payload) :

      Note: Since all instances of your module will receive the notifications, it’s your task to make sure the right module responds to your messages.

      So it is normal that each instance receive all the SocketNotification even send from another instance.

      To manage this, I add on start function :

      this.config.instanceID = this.identifier;
      

      As all my socket notification send to the note_helper “self.config”, so the node_helper will know the source of the request and will be able to send it back on its answer.
      Then on the node_helper sendSocketNotification, I send back this identifier with the corresponding answer.

      And on the MMM_main.js, on the socketNotificationReceived, I start to check is the identifier correspond to this instance and if not :

      return;
      

      Unfortunatelly this was even not enough, in particular at start-up, when all instances want to receive their datas and request all the node_helper together with differents inputs, some mix up occurs, so I also had to implement a “initialDelay” timer (with setTimeout function) and I will ask the user to configure it correctly if he configure several instances.

      So complicated solution (I feel…), but working fine !

      Of course if anyone got a better one to share, please do !

      Bye,
      AgP

      posted in Development
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      Hi @Alain,

      first please remove all your apikey on your post before 😉

      I see that you also use the MMM-PIR-sensor module, with a delay of 100s, this is probably the root cause of the strange behavior that you saw.

      Let me explains you my analysis :

      Here is how this sensor work (Source) :
      PIR

      The delay of detection or non-detection as to be set directly on the sensor !

      So your sensor will sent to the module “MMM-PIR-Sensor” 2 possible states “HIGH” (presence) or “LOW” (no presence).

      Each time the MMM-PIR-Sensor will receive a modification of the sensor status, it will sent immediately (to everyone, so to MMM-SmartWebDisplay too) a notification saying “USER_PRESENCE=true” or false.

      Developer Notes (MMM-PIR-Sensor)
      
      This module broadcasts a USER_PRESENCE notification with the payload beeing true or false you can use it to pause or disable your module.
      

      The “powerSavingDelay” is applied after this notification is sent to everyone.

      And my module “MMM-SmartWebDisplay” use this notification to stop and restart the update timer.

      So by setting 100s of delay on the MMM-PIR-Sensor module, it probably totally mix up all the update timer management of my module. 😭

      A small example :

      • Nobody in front of the mirror for long time, so Mirror is off
      • you arrives close to the Mirror, that activate the PIR sensor, the Mirror wakes up and MMM-SmartWebDisplay also wakes up, update the html page to display and set a new refresh in 1 min (because you configure it with 1min)
      • your sensor doesn’t detects you anymore : during 100s, so 1min40s your Mirror will stay ON without any notification (because you desactivate “powerSavingNotification”), but MMM-SmartWebDisplay (and all other modules) received the notification “USER_PRESENCE=false”, so MMM-SmartWebDisplay stops the update of the html page.
      • if your sensor detects you again during this 100s, then you should see the update of the html (directly when the sensor will send the info to the Mirror) --> Do you confirm this ?

      So for me your problem is on the adjustment of your PIR sensor and the value you set for this module configuration. You can follow this very good page to adjust correctly your sensor : PIR sensor

      Personally I adjust the detection delay on the sensor itself and I just set 10s of “powerSavingDelay” after a notification (powerSavingNotification: true).

      I hope my explaination was clear enough !

      Good luck and let me know if you still face issues,

      Bye
      AgP42

      posted in Utilities
      A
      AgP42
    • RE: Magic Mirror Shoutout (YouTube and Google Photo Modules!

      ☺ 👍🏻

      Great video and thank for the reference !

      posted in General Discussion
      A
      AgP42
    • RE: Withings

      Hello,

      I also try to make it work, but I didn’t succed. Probably I did some wrong behaviour during the oAuth process.

      At the end I can see on my MagicMirror logs an error 283, that correspond according to Nokia API website to : “283 : Token is invalid or doesn’t exist”.

      I considered it was OAuth version 1.0 because it look like it.

      Also it is written on Nokia website :

      “The Health Mate API is now fully functional with OAuth 2.0 authentication protocol.
      Therefore, the OAuth 1.0 process will no longer be supported beginning:
      November 30, 2018”

      Also I do not really want to fight to make it work if the service will be cut by Nokia/Withings on a few months.

      Does someone have the knowledge to update this module with OAuth 2.0 ?

      posted in Requests
      A
      AgP42
    • [MMM-Netatmo-Presence] - Display liveview and events for Netatmo cameras

      Hello,

      I just finished my module to display the live view and last events of Netatmo Presence Cameras.
      Some part of this module (Live view) may also work for Netatmo Welcome Cameras.

      Please test it and let me know if any issues or improvment idea ! 🙂

      Description:

      Main functionnalities :

      • Display Live snapshot of one or several cameras - This behavior should work also for “Netatmo Welcome” cameras, but not tested
      • Display the events recorded by all the cameras as timeline, with the type of event (animal, human, vehicle or movement). It is possible to filter the event type and to choose the number of events to be displayed. This will for sure not work for Welcome cameras.
      • Use the official sample code from Netatmo to connect to the API, so with https and no complex token to catch !
      • Several instances possible (one to display live snapshot, another to display events of type “vehicle”, another with all last 5 events, …)
      • Network data and RPI load friendly :
        • The API token is requested only when expired or once at start-up (also for several instances)
        • If a PIR-sensor using MMM-PIR-Sensor module is used, the auto-update will stop during screen off (this behavior works also with all other module that send the notification “USER_PRESENCE”).
        • If all instances of MMM-Netatmo-Presence module are hidden (by REMOTE-CONTROL or any Carousel module for example), the auto-update will also stop.
          As soon as a MMM-Netatmo-Presence module will be again displayed on the screen or screen switch on, an update will be requested.
      • Possibility to display the date and time of the last update request (configurable)
      • CSS file and many display configuration possibilities

      Screenshots:

      3 instances running, 2 to display live snapshot and 1 with Event timeline :
      0_1533157971593_3 instances.png
      Event timeline with the last event on both full image and detail of the movement detected :
      0_1533157993806_Events color icon.png
      2 liveview on the same instance :
      0_1533158012694_2 lives in 1 instance.png

      Download:


      Version 0.0.1

      • First release - 01/08/2018
      posted in Utilities
      A
      AgP42
    • RE: Todoist accesstoken

      Hello all,

      I also get so many trouble to make it work, but thanks to your help it is now ok ! 😀

      So no need to create that incredibly complicated “OAuth string”, the use of the “Test token” works perfectly fine :

      0_1531575735336_todoist.png

      But… It is mandatory to define “projects” value in the config.js file.
      As the default value is [] I also consider it as optional…😳

      With this value defined, everything is OK !

      posted in Troubleshooting
      A
      AgP42
    • RE: Magic Mirror Shoutout (YouTube and Google Photo Modules!

      @techcoderun I use your video as screenshot example for my new “YouTube” module : MMM-SmartWebDisplay

      😉

      posted in General Discussion
      A
      AgP42
    • RE: MMM-iFrame-Ping

      @rudibarani said in MMM-iFrame-Ping:

      @AgP42 Thank you for this version of iFrame. Works well for me 🙂
      I do get a white line around the embedded iFrame. Could you please tell me, how to get rid of it?

      Hello,

      you can try the following :

      On the file “MMM-iFrame-Ping.js”, on lines 135, 136 and 137 there is :

      iframe.width = this.config.width;
      iframe.height = this.config.height;
      iframe.scrolling = this.config.scrolling;
      

      with those lines, please add :

      iframe.style = "border:0"
      

      This should solve your problem !

      Bye,
      AgP42

      posted in Utilities
      A
      AgP42

    Latest posts made by AgP42

    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @Doudy

      To do so, you can ask your domiticz system to send a new url request according to the humidity value.
      See https://github.com/AgP42/MMM-SmartWebDisplay#change-the-url for the synthaxe of the request to be sent.

      But no, the module itself don’t have an input for any “logical” behavior.

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @Egnos said in MMM-SmartWebDisplay : display web contents (including YouTube) on your MM:

      Hello everybody,
      I am going crazy to find ways to disable audio from this module.
      It’s possible?
      If yes, how?
      Thank you.

      Hello,

      from the module itself : no it is not managed.
      But it depend the kind of source you are playing, if it is YouTube, you just have to click on the “Mute” button on the YouTube interface !

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @Serge
      Thank you for your work, I just review it on Github and merge your code. It is now available for everyone !

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      Hello everyone and happy new year !

      @Serge said in MMM-SmartWebDisplay : display web contents (including YouTube) on your MM:

      Is it possible to add time delay in config.js file in order to make more easier integration of PIR modules and SWD module?
      Also, it would be good to have the ability to switch-off the Presence notification dependency.
      Sometime I just want to run youtube (say classic music) even when the display is turned off (as a background music)
      Such command/config will let do that.

      It would have been better to change the behavior of the PIR module, but it is also possible to change it on the SWD module and yes it also can be possible to totally deactivate it to let the youtube music run in background.
      I will try to find some time this week to add those modifications.

      @Serge said in MMM-SmartWebDisplay : display web contents (including YouTube) on your MM:

      Also, as an idea for the function “continuous play”. Function will allow module to pause current video when the screen turned off by PIR and continue to play it again when screen turned on by PIR.
      Now video starts from the beginning each time the module getting an user presence notification.

      I already answer this several time and it is even written on the documentation, the module itself don’t have access to the video, so it is not possible to play/pause the video itself. To do so I should have implemented the youtube API (and all other video api !). The play/pause function is about the url rotation and not about the video playing itself. And this is something I unfortunately cannot change… sorry !

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      Hi @Alain,

      first please remove all your apikey on your post before 😉

      I see that you also use the MMM-PIR-sensor module, with a delay of 100s, this is probably the root cause of the strange behavior that you saw.

      Let me explains you my analysis :

      Here is how this sensor work (Source) :
      PIR

      The delay of detection or non-detection as to be set directly on the sensor !

      So your sensor will sent to the module “MMM-PIR-Sensor” 2 possible states “HIGH” (presence) or “LOW” (no presence).

      Each time the MMM-PIR-Sensor will receive a modification of the sensor status, it will sent immediately (to everyone, so to MMM-SmartWebDisplay too) a notification saying “USER_PRESENCE=true” or false.

      Developer Notes (MMM-PIR-Sensor)
      
      This module broadcasts a USER_PRESENCE notification with the payload beeing true or false you can use it to pause or disable your module.
      

      The “powerSavingDelay” is applied after this notification is sent to everyone.

      And my module “MMM-SmartWebDisplay” use this notification to stop and restart the update timer.

      So by setting 100s of delay on the MMM-PIR-Sensor module, it probably totally mix up all the update timer management of my module. 😭

      A small example :

      • Nobody in front of the mirror for long time, so Mirror is off
      • you arrives close to the Mirror, that activate the PIR sensor, the Mirror wakes up and MMM-SmartWebDisplay also wakes up, update the html page to display and set a new refresh in 1 min (because you configure it with 1min)
      • your sensor doesn’t detects you anymore : during 100s, so 1min40s your Mirror will stay ON without any notification (because you desactivate “powerSavingNotification”), but MMM-SmartWebDisplay (and all other modules) received the notification “USER_PRESENCE=false”, so MMM-SmartWebDisplay stops the update of the html page.
      • if your sensor detects you again during this 100s, then you should see the update of the html (directly when the sensor will send the info to the Mirror) --> Do you confirm this ?

      So for me your problem is on the adjustment of your PIR sensor and the value you set for this module configuration. You can follow this very good page to adjust correctly your sensor : PIR sensor

      Personally I adjust the detection delay on the sensor itself and I just set 10s of “powerSavingDelay” after a notification (powerSavingNotification: true).

      I hope my explaination was clear enough !

      Good luck and let me know if you still face issues,

      Bye
      AgP42

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      Hello,

      I finalize the version, it is now available for everyone !

      To update (as every module) :

      cd ~/MagicMirror/modules/MMM-SmartWebDisplay
      git pull
      

      Enjoy 😉

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @Newtothis @rafaelcota

      You asked the compatibility with the module MMM-TelegramBot, and I finally took the time today to integrate it.

      It is in “beta” so far, I must now write the documentation (really less fun that writing code 😇 )

      The code is here : https://github.com/AgP42/MMM-SmartWebDisplay/tree/beta, if you could test and let me know your feedback it will be very appreciated !!

      The commands are (still time to change them if you don’t like thoses ones…) :
      /swd_next
      /swd_prev
      /swd_play
      /swd_pause
      /swd_stop
      /swd_url (then the url you want to display on your MagicMirror)
      for example “/swd_url http://magicmirror.builders/”

      for the URL I didn’t give the possibility to send a list, but could be improved.

      Thanks for your feedback !

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @brotherbrown831
      sorry but I don’t understand what you want to do, do you want to use a URL with a name and password on it ?
      Or do you want to use a pop up to log in and then access a URL ?
      You say “the action-tiles team”, what it this ? Do you have any documentation ?

      Thanks for a bit more detail 😉

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @Alain said in MMM-SmartWebDisplay : display web contents (including YouTube) on your MM:

      @ueffchen I have the exact same problem. However, for some reason, when I turn the “displayLastUpdate:” to “true”, it begins updating at the interval set in “updateInterval”. Turn it back to “false”, and it stops updating.

      Not ideal, since it displays a line of information I don’t want to see; but it does refresh.

      If someone could help, I would appreciate it too!

      Thank you
      Alain

      Hello @Alain ,

      yes strange behavior indeed !

      Could you please share your full config to check what could be wrong ?

      Thanks,
      AgP

      posted in Utilities
      A
      AgP42
    • RE: MMM-SmartWebDisplay : display web contents (including YouTube) on your MM

      @ueffchen said in MMM-SmartWebDisplay : display web contents (including YouTube) on your MM:

      Hi
      the module loads initially after updating config.js or rebooting the MM, but it doesn’t refresh the iframe.
      Is there anything in the settings that I should do different?
      Thanks, ueffchen

      {
      		module: 'MMM-SmartWebDisplay',
      		position: 'top_right',	// This can be any of the regions.
      		config: {
      			// See 'Configuration options' for more information.
      			logDebug: false, //set to true to get detailed debug logs. To see them : "Ctrl+Shift+i"
      			height:"330px", //hauteur du cadre en pixel ou %
      			width:"330px", //largeur
                     		updateInterval: 30, //in min. Set it to 0 for no refresh (for videos)
                      	NextURLInterval: 30, //in min, set it to 0 not to have automatic URL change. If only 1 URL given, it will be updated
                      	displayStateInfos: false,	//to display if the module is on autoloop, or stop. 
                      	displayLastUpdate: false, //to display the last update of the URL
      			displayLastUpdateFormat: 'ddd - HH:mm:ss', //format of the date and time to display
                      	url: ["https://gadgets.buienradar.nl/gadget/zoommap/?lat=51.29724&lng=6.84929&overname=2&zoom=11&naam=ratingen&size=2b&voor=1"],         	
      			scrolling: "no" // allow scrolling or not. html 4 only
      			}
      	},
      
      

      Hi @ueffchen,

      when I test the url on iFrame tester (here : iFrame), I don’t need any refresh, the radar is live display without any refresh.
      Isn’t it the same on the mirror ?

      Otherwise on the config, as you have only 1 URL, this param "NextURLInterval: 30, " has to be set to 0 (but it cannot be the reason of non-refresh…)

      And as you set the "updateInterval: 30, ", then here you request a refresh every 30 MINUTES, was it the refresh you wanted ?

      Bye,
      AgP

      posted in Utilities
      A
      AgP42