• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

How to Change MMM-DWD-WarnWeather Module for Switzerland

Scheduled Pinned Locked Moved Development
13 Posts 3 Posters 6.8k Views 3 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.
  • S Offline
    strawberry 3.141 Project Sponsor Module Developer @Squirrel
    last edited by Jan 16, 2017, 6:07 PM

    @Squirrel result['alarms'][0]['regions'][0]['name_de'] returns Agglo BE you have to access arrays [] with the index (starting with 0) and access objects {} with the property names

    Please create a github issue if you need help, so I can keep track

    1 Reply Last reply Reply Quote 0
    • S Offline
      Squirrel
      last edited by Jan 17, 2017, 10:04 PM

      @strawberry-3-141 thank you for your fast and competent answer.

      This is what i did now:

      
      ......
      
      request ( {
                url: url,
                method: 'GET'
      		  }, 
      
                 function (error, response, body) {
      
      			var result = JSON.parse(body);
      			var warningData = [];
      			
      			for (var regionId in result['alarms']) {
      
                      			if (result['alarms'][regionId]['regions'][0]['name_de'] == region) {
      					var warnings = new Object();
      					warnings.start = result['alarms'][regionId]['valid_from'];
      					warningData.push(warnings.start);
      					warnings.end = result['alarms'][regionId]['valid_to'];
      					warningData.push(warnings.end);
      					warnings.regionName = result['alarms'][regionId]['regions'][0]['name_de'];
      					warningData.push(warnings.regionName);
      					warnings.level = result['alarms'][regionId]['priority']
      					warningData.push(warnings.level);
      					warnings.type = result['alarms'][regionId]['code']
      					warningData.push(warnings.type);
      					warnings.altitudeStart = undefined;
      					warningData.push(warnings.altitudeStart);
      					
      					if (warnings.type == 1){warnings.event = "Frost";}
      					else if (warnings.type == 2){warnings.event = "Gewitter";}
      					else if (warnings.type == 3){warnings.event = "Grossflächige Glätte";}
      					else if (warnings.type == 4){warnings.event = "Kräftiger Regen";}
      					else if (warnings.type == 5){warnings.event = "Schnee";}
      					else if (warnings.type == 6){warnings.event = "Sturm";}
      					else if (warnings.type == 7){warnings.event = "Hochwasser";}
      
      					warningData.push(warnings.event);
      
      					warnings.headline = result['alarms'][regionId]['de']['title'];
      					warningData.push(warnings.headline);
      					warnings.description = result['alarms'][regionId]['de']['paragraph'];
      					warningData.push(warnings.description);
      				}
      			}
      			self.sendSocketNotification('WARNINGS_DATA', {warnings: warningData, region: region});
      
      			console.log(warnings);
      			console.log(warningData)
      
      		});
      
                .......
      
      

      Now i got the following outputs:

      // With console.log(warnings);
      
      { start: '2017-01-16T21:00:00.000Z',
        end: '2017-01-19T00:00:00.000Z',
        regionName: 'Seeland/Bielersee',
        level: 1,
        type: 6,
        altitudeStart: undefined,
        event: 'Sturm',
        headline: 'Starke Windböen',
        description: 'eisige Bise. 21 Uhr bis Do 00 Uhr' }
      
      // With console.log (warningData)
      
      [ '2017-01-17T00:00:00.000Z',
        '2017-01-18T23:00:00.000Z',
        'Seeland/Bielersee',
        1,
        3,
        undefined,
        'Grossflächige Glätte',
        'Gefahr von grossflächiger Glätte',
        'durch Schneeglätte. Di 00 Uhr bis Mi 23 Uhr',
        '2017-01-16T21:00:00.000Z',
        '2017-01-19T00:00:00.000Z',
        'Seeland/Bielersee',
        1,
        6,
        undefined,
        'Sturm',
        'Starke Windböen',
        'eisige Bise. 21 Uhr bis Do 00 Uhr' ]
      

      My Problem now is that my Output is still looking different than his output. And when i get 2 warnings for the same Region the Output goes into the same Array… By the Way… Why i get only one Warning for the region with console.log(warnings);

      Here is the Output example of his module:

      [ { start: 1484586000000,
          end: 1484650800000,
          regionName: 'Kreis Harburg',
          .....
          state: 'Niedersachsen' 
        },
        { start: 1484586000000,
          end: 1484650800000,
          regionName: 'Kreis Harburg',
          .......
          state: 'Niedersachsen' 
          }
       ]
      
      S 1 Reply Last reply Jan 17, 2017, 10:47 PM Reply Quote 0
      • S Offline
        strawberry 3.141 Project Sponsor Module Developer @Squirrel
        last edited by Jan 17, 2017, 10:47 PM

        @Squirrel you are pushing every single propertie to the array instead of the whole object

        if (result['alarms'][regionId]['regions'][0]['name_de'] == region) {
          var warnings = {};
          warnings.start = result['alarms'][regionId]['valid_from'];
          warnings.end = result['alarms'][regionId]['valid_to'];
          warnings.regionName = result['alarms'][regionId]['regions'][0]['name_de'];
          warnings.level = result['alarms'][regionId]['priority']
          warnings.type = result['alarms'][regionId]['code']
          warnings.altitudeStart = undefined;
        					
          if (warnings.type == 1){warnings.event = "Frost";}
          else if (warnings.type == 2){warnings.event = "Gewitter";}
          else if (warnings.type == 3){warnings.event = "Grossflächige Glätte";}
          else if (warnings.type == 4){warnings.event = "Kräftiger Regen";}
          else if (warnings.type == 5){warnings.event = "Schnee";}
          else if (warnings.type == 6){warnings.event = "Sturm";}
          else if (warnings.type == 7){warnings.event = "Hochwasser";}
        
          warnings.headline = result['alarms'][regionId]['de']['title'];
          warnings.description = result['alarms'][regionId]['de']['paragraph'];
          warningData.push(warnings);
        }
        

        try this instead

        Please create a github issue if you need help, so I can keep track

        1 Reply Last reply Reply Quote 0
        • S Offline
          Squirrel
          last edited by Jan 18, 2017, 10:37 AM

          Thanks again for fast Answer! Now everything is working. Im so happy! :)

          I have just one last Question. I tried to run both modules at the same time. This is giving me problems. The Icons are too much big and i cant see something else…

          I changed all the names of the module files and folders and i have no idea where i can find this fault. I think nobody gonna us this two modules at the same time but i want to upload my module for other users and if somebody is using both of them i dont want to destroy @LukeCodewalker s module… ;)

          1 Reply Last reply Reply Quote 0
          • S Offline
            Squirrel
            last edited by Jan 18, 2017, 4:28 PM

            I uploaded my Project MMM-WetteralarmCH now! If somebody can help me with the problem of using both modules (MMM-WetteralarmCH and. MMM-DWD-WarnWeather) at the same time i gonna update my Project again.

            Thanks to everybody for helping me!

            1 Reply Last reply Reply Quote 0
            • L Offline
              LukeCodewalker Module Developer
              last edited by Jan 25, 2017, 7:04 AM

              Sorry for being absent so long. Busy times in the moment :) but I’m glad to see that you’ve got it working. :thumbsup:

              1 Reply Last reply Reply Quote 0
              • S Offline
                Squirrel
                last edited by Jan 25, 2017, 1:06 PM

                @LukeCodewalker thanks! But I still need a Solution to don’t Crash your Module while both modules are running at the same time… Let me know when you have more time to talk about that topic 😉

                1 Reply Last reply Reply Quote 0
                • 1
                • 2
                • 2 / 2
                2 / 2
                • First post
                  11/13
                  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