Wie integriert man Mondphasen - how to

alexamend

Active member
Ich hatte mir als Ziel gesetzt Mondphase etwas besser als das "default" von HA zu bewerkstelligen
- dies ohne custom.... war nicht ganz so ohne weiteres möglich "jetzt passt es"

als Ergebnis gibt es dies

Mond.JPG


was wird benötigt...
1. den sensor Mond "moon"

Einstellungen -> Geräte&Dienste -> Integration hinzufügen ->mond

Mond_01.JPG

den Inhalt Link zu den Bildern unter www kopieren \\>IP_home_assistant<\config\www\moon_phases\

neustart von homeassistant

den korrekten Namen vom Mond Sensor anpassen

Mond_02.JPG

in der configuration.yaml benötigt Ihr sensor: und scrape:

sensor:
YAML:
sensor:
  - platform: template
    sensors:
      mond:
        entity_id: sensor.mond
        friendly_name: 'Mond'
        value_template: >
          {% if is_state('sensor.moon_phase', 'new_moon') %}
             Neumond
          {% elif is_state('sensor.moon_phase', 'waxing_crescent') %}
             Zuhnemender Sichelmond   
          {% elif is_state('sensor.moon_phase', 'first_quarter') %}
             Zunehmender Halbmond
          {% elif is_state('sensor.moon_phase', 'waxing_gibbous') %}
             Zuhnemender Dreiviertelmond
          {% elif is_state('sensor.moon_phase', 'full_moon') %}
             Vollmond
          {% elif is_state('sensor.moon_phase', 'waning_gibbous') %}
             Abnehmender Deiviertelmond
          {% elif is_state('sensor.moon_phase', 'last_quarter') %}
             Abnehmender Halbmond
          {% elif is_state('sensor.moon_phase', 'waning_crescent') %}
             Abnehmender Sichelmond
          {% endif %}
        entity_picture_template: /local/moon_phases/{{ states("sensor.moon_phase") }}.png

scrape:
YAML:
scrape:
  - resource: https://www.der-mond.de/
    sensor:
      - name: "Beleuchtungsgrad"
        unique_id: mond.beleuchtungsgrad
        icon: "mdi:lightbulb-night-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(8) > td:nth-child(2)"
      - name: "Mondaufgang"
        unique_id: mond.mondaufgang
        icon: "mdi:arrow-up-circle-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(9) > td:nth-child(2)"
      - name: "Monduntergang"
        unique_id: mond.monduntergang
        icon: "mdi:arrow-down-circle-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(10) > td:nth-child(2)"
      - name: "Mondalter"
        unique_id: mond.mondalter
        icon: "mdi:calendar-clock-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(7) > td:nth-child(2)"
      - name: "Kommende Mondphase"
        unique_id: mond.kommende.mondphase
        icon: "mdi:moon-waxing-crescent"
        select: ".table > tbody:nth-child(1) > tr:nth-child(11) > td:nth-child(2)"
      - name: "Mondphase heute"
        unique_id: mond.mondphase.heute
        icon: "mdi:moon-waning-crescent"
        select: ".table > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2)"
      - name: "Astronomisches Sternbild"
        unique_id: mond.astronomisches.sternbild
        icon: "mdi:weather-night"
        select: ".table > tbody:nth-child(1) > tr:nth-child(5) > td:nth-child(2)"
      - name: "Astrologisches Sternbild"
        unique_id: mond.astrologisches.sternbild
        icon: "mdi:star-crescent"
        select: ".table > tbody:nth-child(1) > tr:nth-child(6) > td:nth-child(2)"

jetzt noch einmal neu starten dann können die sensoren eingebunden werden


hier meine config der UI, beachtet das euer Mond Sensore eventuell einen anderne Namen haben kann..

Dies ist custom wird nur für transparenz benötigt
Code:
style: |
  ha-card {
  opacity: 80%
  }

YAML:
type: entities
style: |
  ha-card {
  opacity: 80%
  }
entities:
  - entity: sensor.mond
    name: Mondstand
  - entity: sensor.mond_mondaufgang
  - entity: sensor.mond_monduntergang
  - entity: sensor.mond_mondalter
  - entity: sensor.mond_beleuchtungsgrad
  - entity: sensor.kommende_mondphase
  - entity: sensor.mondphase_heute
  - entity: sensor.astrologisches_sternbild
  - entity: sensor.astronomisches_sternbild
title: Mondphase
 
Zuletzt bearbeitet:
hatte heute etwas "viel" Zeit und habe meine komletten yaml überarbeitet, sprich auf den aktuellen syntax abgeändert

das tamplate für den Mond schaut jetzt so aus, falls es einer übernehemn möchte

YAML:
template:
   - name: 'Mond'
      unique_id: mein_mond
      state: >
        {% set phase = states('sensor.moon_phase') %}
        {% set mapper = {'new_moon':'Neumond',
                         'waxing_crescent':'zunehmender Mond',
                         'first_quarter':'Erstes Viertel',
                         'waxing_gibbous':'Halbmond',
                         'full_moon':'Vollmond',
                         'waning_gibbous':'Abnehmender Mond',
                         'last_quarter':'Letztes Viertel'} %}
        {{mapper.get(phase,'Aschgrauer Mond')}}
        ({{phase|replace('_',' ')|capitalize}})         # Diese Zeile Löschen
      picture: >
        {% set state = states('sensor.moon_phase') %}
        /local/moon_phases/{{state}}.png

wer nicht möchte das der Sensor zusätzlich in englisch benamt wird löscht die markierte Zeile

YAML:
        ({{phase|replace('_',' ')|capitalize}})         # Diese Zeile Löschen
 
Das heisst, dass Du von Deinem Rechner aus auf Homeassistant zugreifst ("\\HA-IP\Freigabe\" kannst Du um Datei-Explorer oben in der Adresszeile eingeben), das sieht dann ungefähr so aus:

1675111797089.png

Die beispielhafte IP (192.168.x.x) musst Du natürlich noch durch die IP Deiner HomeAssistant-Installation ersetzen. Falls noch nicht vorhanden, benötigst Du noch das Samba-Addon für HomeAssistant, damit Du auf diesem Wege darauf zugreifen kannst :)
 
Dies sind nur die Zustände, was schon man nicht schlecht ist der Sensor funktioniert ja...
somit gehe ich davon aus das in deiner Konfiguration sich ein Fehler eingeschlichen hat.

Ist der Name nicht korrekt wird er auch nicht korrekt angezeigt

mond_001.PNG

man kann seit den neuern Versionen von HA einfach die Auto-Erkennung nutzen

entferne die entity: sensor.mond_beleuchtung wie abgebildet z.B. entity: sensor.mond_

dann schreibe beleuchtung einmal neu

entity: sensor.mond_b

jetzt sollte der korrekte Sensor auftauchen diesen anklicken, danach sollte es funktionieren

mond_002.PNG
 
Hallo,
ich finde Deine Vorgehensweise sehr interessant, und werde sie versuchen in den kommenden Tagen umzusetzen, auch wenn ich zwar Informatiker bin, ist HA für mich absoluten Neuland und ich bin noch in der Test- und Fingungsphase. ich hätte aber noch eine Frage bezüglich der Entitäten, die Du von der Seite "www.der-mond.de" verwendest. Wie kann ich weitere bereitgestellte Infor verwenden (Höher und Hiimmelsrichtung)? Wie kann ich überhaupt erkennen welche Entitäten die Seite in welchem Syntax bereitstellt?

Außerdem habe ich leider, wegen der Unerfahrenheit mit YAML das Problem wie ich mit Deiner Änderung/deinem Zusatz als Template umgehen muss.

Muss ich das Template zusätzlich definieren zum Sensor und zum Scrape in der configuration.yaml? Ist irdendwas davon dann ein überflüssiges/konkurierendes Duplikat. Wie muss ich es am Besten am saubersten strukturiert einbinden? Kannst Du bitte nochmals eine Update Deines Bereiches aus der Configuration.yaml posten? Oder verteilst Du es auf andere eingebundenen YAML-Konfig-Dateien.

Danke im Voraus.
Gruß
Frank
 
Zuletzt bearbeitet:
Muss ich das Template zusätzlich definieren zum Sensor und zum Scrape in der configuration.yaml? Ist irdendwas davon dann ein überflüssiges/konkurierendes Duplikat. Wie muss ich es am Besten am saubersten strukturiert einbinden? Kannst Du bitte nochmals eine Update Deines Bereiches aus der Configuration.yaml posten? Oder verteilst Du es auf andere eingebundenen YAML-Konfig-Dateien.
Grundsätzlich lässt sich alles in einer eigen 'configuration.yaml' bewerkstelligen jedoch macht es aus Übersichtlichkeit und Wartungsfreundlichkeit Sinn diese zu trennen, ich persönlich trennen diese nach diesem Schema
Screenshot_20230408_154353_Samsung Internet.jpg
Die Seite der Mond gibt nur die oben aufgeführten Möglichkeiten zum Scrapen die auch Sinn machen,

Die von mir oben aufgeführten yaml Dateien ergeben keine Doppelten Einträge all diese werden für die von mir gezeigt Ansicht benötigt, auch die Dateien aus goigle-drive zur individuellen Anzeige vom Mond als Bild.
 
Hallo,
Danke für Deine schnelle Antwort. Ich habe, nachdem ich bei den Entitäten noch kurz die Namen anpassen musste, weil sie nicht ganz stimmten es, mit Deiner Anleitung sauber hinbekommen. Ich habe auch noch einen kleienen Tip-Fehler gefunden, aber nur weil wir gerade die entsprechende Mondphase haben. Bei Dir heißt die aktuelle "Abnehmender Deiviertelmond". Aber wie bei den Sensornamen. man soll nier blind kopieren und immer versuchen mitzudenken, was man tut.

Ich habe auch noch zwei weitere Daten gefunden die mal sich anzeigen lassen kann, die in Deiner Liste nicht sind. die aber bei "der Mond" zur Verfügung stehen. Das sind die Höhe über dem Hotizont und die Himmelsrichtung. Habe sie gleich noch mit eingebaut, nur keine passenderen Icons gefunden und bei den "scrape-Sensoren" mit in Deine Liste übernommen.
- name: "Himmelsrichtung"
unique_id: mond.richtung
icon: "mdi:sign-direction"
select: ".table > tbody:nth-child(1) > tr:nth-child(4) > td:nth-child(2)"
- name: "Höhe"
unique_id: mond.hoehe
icon: "mdi:arrow-up-bold-circle"
select: ".table > tbody:nth-child(1) > tr:nth-child(3) > td:nth-child(2)"

Gruß und noch schönes "Rest-Ostern" aus Sachsen
FRank
 
Und noch eine Sache die nicht passte, aber das kann auch sein, dass die die Webseite mal geändert hat un die Reihenfolge der dargestellten Werte geändert wurde. Bei Dir war Aufgang noch tr:nth-child(9) und der Untergang tr:nth-child(10).
Aktuell ist es umgedreht. ;-)
 
Frank, danke für den hinweis... hier die korregierten

template:
YAML:
# Mondphase mit Bild
  - sensor:
    - name: 'der Mond'
      unique_id: der_mond
      state: >
        {% if is_state('sensor.moon_phase', 'new_moon') %}
           Neumond
        {% elif is_state('sensor.moon_phase', 'waxing_crescent') %}
           Zuhnemender Sichelmond    
        {% elif is_state('sensor.moon_phase', 'first_quarter') %}
           Zunehmender Halbmond
        {% elif is_state('sensor.moon_phase', 'waxing_gibbous') %}
           Zuhnemender Dreiviertelmond
        {% elif is_state('sensor.moon_phase', 'full_moon') %}
           Vollmond
        {% elif is_state('sensor.moon_phase', 'waning_gibbous') %}
           Abnehmender Dreiviertelmond
        {% elif is_state('sensor.moon_phase', 'last_quarter') %}
           Abnehmender Halbmond
        {% elif is_state('sensor.moon_phase', 'waning_crescent') %}
           Abnehmender Sichelmond
        {% endif %}
      picture: >
        {% set state = states('sensor.moon_phase') %}
        /local/moon_phases/{{state}}.png

scrape:
YAML:
# Scrapper
  - resource: https://www.der-mond.de/
    sensor:
      - name: "Beleuchtungsgrad"
        unique_id: mond.beleuchtungsgrad
        icon: "mdi:lightbulb-night-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(8) > td:nth-child(2)"
      - name: "Mondaufgang"
        unique_id: mond.mondaufgang
        icon: "mdi:arrow-up-circle-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(9) > td:nth-child(2)"
      - name: "Monduntergang"
        unique_id: mond.monduntergang
        icon: "mdi:arrow-down-circle-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(10) > td:nth-child(2)"
      - name: "Mondalter"
        unique_id: mond.mondalter
        icon: "mdi:calendar-clock-outline"
        select: ".table > tbody:nth-child(1) > tr:nth-child(7) > td:nth-child(2)"
      - name: "Kommende Mondphase"
        unique_id: mond.kommende.mondphase
        icon: "mdi:moon-waxing-crescent"
        select: ".table > tbody:nth-child(1) > tr:nth-child(11) > td:nth-child(2)"
      - name: "Mondphase heute"
        unique_id: mond.mondphase.heute
        icon: "mdi:moon-waning-crescent"
        select: ".table > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2)"
      - name: "Astronomisches Sternbild"
        unique_id: mond.astronomisches.sternbild
        icon: "mdi:weather-night"
        select: ".table > tbody:nth-child(1) > tr:nth-child(5) > td:nth-child(2)"
      - name: "Astrologisches Sternbild"
        unique_id: mond.astrologisches.sternbild
        icon: "mdi:star-crescent"
        select: ".table > tbody:nth-child(1) > tr:nth-child(6) > td:nth-child(2)"
      - name: "Mondhöhe"
        unique_id: mond.mondhoehe
        select: ".table > tbody:nth-child(1) > tr:nth-child(3) > td:nth-child(2)"
        icon: "mdi:theme-light-dark"
      - name: "Himmelsrichtung"
        unique_id: mond.himmelsrichtung
        select: ".table > tbody:nth-child(1) > tr:nth-child(4) > td:nth-child(2)"
        icon: "mdi:compass-rose"
 
Danke.
Genau so habe ich es, entsptrechend Deiner Vorlage, für mich schon umgebaut.
Aber die komplette Vorlage für" andere ist natürlich am Besten.
;-)
Gruß
Frank
 
Der Sensor sensor.moon_phase ist der original Sensor die die Moon Integration zur Verfügung stellt.

Der Beitrag #17 Beschreibt ja nur, wie man über einen Template Sensor, einen neuem Moon Sensor erstellt, welcher individuellen Bilder für die jeweiligen Mondphasen darstellt.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.213
Beiträge
43.951
Mitglieder
3.806
Neuestes Mitglied
Andy74
Zurück
Oben