Problem with an integration without data

Hello everyone,

I have an automation that performs various actions. Today, however, there was 1 integration that no longer worked and therefore had no data, so the following commands were not executed due to an error message.
Is there a possibility that if an integration has no data, the following commands will still be executed.
I hope you understand what I mean. It’s not easy to explain.
Thanks for your response

https://www.home-assistant.io/docs/scripts#continuing-on-error

Why not?

It is how you ignore errors and continue execution.

Thank you for your comment. But this doesn’t really work for me!

- service: script.berichten
  data:
    Welke_Output: Slaapruimte MB Groep Sonos
    Welke_Pauze: 57
    call_Melding: 1
    call_Begroeting: 1
    call_Datum: 1
    call_Tijd: 1
    call_Weerbericht: 1
    call_Taken: 1
    call_Waterdruk: 1
    Doel: Ochtendmelding

The error happened at “call Taken”! But the rest is not implemented

Share your script.berichten script config.

Thanks for your response.

As a hobby, I spend a lot of time doing HA and try out a lot of things.

This is a big Macro. If there is an error somewhere in the maro’s, it should simply be ignored! I don’t know how I would do this.

Might not look as good with wouldn’t know how else to do this at this point!

This is part of the script!

alias: Berichten
sequence:
  - service: script.kies_output
    data:
      Welke_Pauze: 2
      Welke_Output: "{{Welke_Output}}"
      Titel: "{{Titel}}"
      Extra_Volume: "{{Extra_Volume}}"
      Geluid: >-

        {% macro Melding() %}  
          {% if is_state("input_select.geluid_biepen", "Geen") %}

          
             {{ [              
                'Biep 1', 'Biep 2', 'Biep 3', 'Biep 4', 'Biep 5', 'Biep 6', 'Biep 7', 'Biep 8', 'Biep 9', 'Biep 10', 'Biep 11', 'Biep 12', 'Biep 13', 'Biep 14', 'Biep 15', 'Biep 16', 'Biep 17',
                'Biep 18', 'Biep 19', 'Biep 20', 'Biep 21', 'Biep 22', 'Biep 23', 'Biep 24', 'Biep 25', 'Biep 26', 'Biep 28', 'Biep 29', 'Biep 30', 'Biep 31', 'Biep 32', 'Biep 33','Biep 34', 'DingDong'
              ] | random }}
          
          {% else %}
            {{states("input_select.geluid_biepen")}}
          {% endif %}
        {% endmacro %}   

        {# a macro that removes all newline characters, empty spaces, and
        returns formatted text. Also replaces all Underscores with Spaces  #}

        {%- macro cleanup(data) -%}
          {%- for item in data.split("\n")  if item | trim != "" -%}
            {{ item | trim | replace("_", " ") }} {% endfor -%}
        {%- endmacro -%}

        {# ******************************** #}

        {#  ******** Start the Speech routines ********  #}

        {# ********************************************* #}

        {# a macro to call all macros :)  #}

        {%- macro mother_of_all_macros() -%}


          {% if call_Melding == 1 %}
            {{ Melding() }}
          {% endif %}
        {%- endmacro -%}


        {{- cleanup(mother_of_all_macros()) -}}
      Tekst: |-

   	 {% macro Weerbericht() %}
           Op dit moment in Maaseik is het 
           {{states.sensor.buienradar_temperature.state.split(".")[0]}} komma {{states.sensor.buienradar_temperature.state.split(".")[1]}} Graden.
           De gevoelstemperatuur is 
           {% if states.sensor.buienradar_temperature.state == states.sensor.buienradar_feel_temperature.state %}
               ook
           {% else %}
               er echter
           {% endif %}
           {{states.sensor.buienradar_feel_temperature.state.split(".")[0]}} komma {{states.sensor.buienradar_feel_temperature.state.split(".")[1]}} .
           {% if states.sensor.buienradar_temperature.state | int <= -3 %}
                {{ [              
                         'Het is zeer koud en het vriest.',  
                         'Het is zeer koud en het vriest, let op als je met de auto weg gaat, het kan glad zijn.',
                         ] | random }}
           {% elif states.sensor.buienradar_temperature.state | int <= 5 %}
                {{ [              
                         'Het is zeer koud maar het zal  niet vriezen vandaag.',             
                         ] | random }}
           {% elif states.sensor.buienradar_temperature.state | int <= 12 %}
                {{ [              
                         'Het is zeer fris, ik zou zeker een jas meenemen als je buiten gaat.',   
                         'Het is zeer fris, een jas is zeker nodig.',
                   ] | random }}
           {% elif states.sensor.buienradar_temperature.state | int <= 18 %}
                {{ [              
                         'Het is best fris, Je kunt best een jasje gebruiken.',
                         'Het is best fris, een jas is geen overbodige luxe.',
                   ] | random }}
           {% elif states.sensor.buienradar_temperature.state | int <= 24 %}
                {{ [              
                         'Het is een redelijke tempratuur, maar een jas is niet echt nodig.',             
                         ] | random }}
           {% elif states.sensor.buienradar_temperature.state | int <= 30 %}
                {{ [              
                         'Het is warm, je hebt echt geen jas nodig.',    
                         'Het is warm, het is echt weer voor een terrasje.',
                         ] | random }}
           {% else %}
                {{ [              
                         'Het is heet, tijd om je te verfrissen.',    
                         'Het is heet, ideaal voor een terrasje te pikken.',
                         ] | random }}
           {% endif %}  
           De maximum Temperatuur van vandaag is {{states('sensor.buienradar_temperature_1d').split('.')[0]}}
           komma {{states('sensor.buienradar_temperature_1d').split('.')[1]}}.
           {% if states.sensor.openweathermap_forecast_temperature_low.state != "unknown" %}
           en het minimum is {{states.sensor.openweathermap_forecast_temperature_low.state.split(".")[0]}}
           komma {{states.sensor.openweathermap_forecast_temperature_low.state.split(".")[1]}}
           {% endif %}
           Er is een 
           {% if states.sensor.buienradar_wind_force.state | int <= 15 %}
                lichte
           {% elif states.sensor.buienradar_wind_force.state | int > 15 and
                   states.sensor.buienradar_wind_force.state | int <= 25  %}
                matige
           {% else %}
                harde
           {% endif %}  wind die komt vanuit het
           {% if states.sensor.buienradar_wind_direction.state == "N" %}
                Noorden
           {% elif states.sensor.buienradar_wind_direction.state == "NNO" %}
                Noord-Noord-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "NO" %}
                Noord-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "O" %}
                Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "ZO" %}
                Zuid-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "NNO" %}
                Noord-Noord-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "NO" %}
                Noord-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "O" %}
                Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "OZO" %}
                Oost-Zuid-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "ONO" %}
                Oost-Noord-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "ZO" %}
                Zuid-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "ZZO" %}
                Zuid-Zuid-Oosten
           {% elif states.sensor.buienradar_wind_direction.state == "Z" %}
                Zuiden
           {% elif states.sensor.buienradar_wind_direction.state == "ZZW" %}
                Zuid-Zuid-Westen
           {% elif states.sensor.buienradar_wind_direction.state == "ZW" %}
                Zuid-Westen
           {% elif states.sensor.buienradar_wind_direction.state == "WZW" %}
                West-Zuid-Westen
           {% elif states.sensor.buienradar_wind_direction.state == "W" %}
                Westen
           {% elif states.sensor.buienradar_wind_direction.state == "WNW" %}
                West-Noord-Westen
           {% elif states.sensor.buienradar_wind_direction.state == "NW" %}
                Noord-Westen
           {% elif states.sensor.buienradar_wind_direction.state == "NNW" %}
                 Noord-Noord-Westen
           {% endif %}         
           met een kracht van {{states.sensor.buienradar_wind_speed.state.split(".")[0] }} Komma {{states.sensor.buienradar_wind_speed.state.split(".")[1]}}
           Kilometer per uur. 
           op dit moment is 
            {% if states.sensor.openweathermap_weather.state == "onbewolkt" or 
                  states.sensor.openweathermap_weather.state == "licht bewolkt" or 
                  states.sensor.openweathermap_weather.state == "bewolkt" or 
                  states.sensor.openweathermap_weather.state == "half bewolkt"%}
              {% set voor = "het" %}
            {% else %}
              {% set voor = "er" %}
            {% endif %}
            {{voor}} {{states.sensor.openweathermap_weather.state}}        
             en het
           {% if states.sensor.buienradar_rain_last_hour.state | int == 0 %}
                {{ [
                     'is droog,',
                     ] | random }} 
           {% elif states.sensor.buienradar_rain_last_hour.state | int <= 20 %}
                {{ [
                     ' regend een beetje,',
                     ] | random }}     
           {% elif states.sensor.buienradar_rain_last_hour.state | int <= 40 %}
                {{ [
                     ' regend,',
                     ] | random }}     
           {% elif states.sensor.buienradar_rain_last_hour.state | int <= 50 %}
                {{ [
                     ' regend redelijk hard,',
                     ] | random }}    
           {% elif states.sensor.buienradar_rain_last_hour.state | int > 50 %}
                {{ [
                     ' regend pijpenstelen,',
                     ] | random }}     
           {% endif %}
           
           {% if states.sensor.openweathermap_forecast_precipitation_probability.state | int == 0.0 %}
           en
           {% else %}
             maar 
           {% endif %}
           {% if states.sensor.openweathermap_forecast_precipitation_probability.state | int == 0.0 %}
                {{ [
                     'er is geen regen voorspelt.',
                     ] | random }}            
            {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 5%}
                {{ [
                     'er is zeer weinig kans op regen.',
                     ] | random }} 
            {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 10%}
                {{ [
                     'er is een zeer kleine kans op regen.',
                     ] | random }} 
            {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 20 %}
                {{ [
                     'er is een heel kleine kans op regen.',
                     ] | random }} 
            {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 30 %}
                {{ [
                     'er is een matige kans op regen.',
                     ] | random }} 
           {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 40 %}
                {{ [
                     'er is kans op regen.',
                     ] | random }} 
           {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 50 %}
                {{ [
                     'er is een redelijk grote kans op regen.',
                     ] | random }}            
           {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 60 %}
                {{ [
                     'er is een grote kans op regen.',
                     ] | random }}            
           {% elif states.sensor.openweathermap_forecast_precipitation_probability.state | int <= 70 %}
                {{ [
                     'er is een zeer grote kans op regen.',
                     ] | random }}            
           {% else %}
                {{ [
                     'het gaat vandaag zeker regenen. Ik zou een paraplu bij de hand houden.',
                     ] | random }}  
           
           {% endif %}    
          
           {% if states.sensor.openweathermap_forecast_precipitation_probability.state | int == 0.0 %}
          
           {% else %}
            Zijnde 
             {{states.sensor.openweathermap_forecast_precipitation_probability.state}} Procent
              en er zal waarschijnlijk {{states.sensor.openweathermap_forecast_precipitation.state.split(".")[0]}} Komma    
              {{states.sensor.openweathermap_forecast_precipitation.state.split(".")[-1]}} milimeter neerslag vallen.
           {% endif %} 
              Er is een Luchtvochtigheid van {{states.sensor.openweathermap_humidity.state}} Procent.
         {% endmacro %} 



         {% macro Taken() %}
          
              {%- set huw = namespace(data = []) %}
             {% set taak = namespace(data = []) %}
             {% set taakmorg = namespace(data = []) %}
             {% set taakoverm = namespace(data = []) %}
             {% set verg = namespace(data = []) %}
             {% set verj = namespace(data = []) %}
         {% for i in range(0, states.sensor.agenda_bart.state|int) %}

         {% if state_attr("ensor.agenda_bart",
         "data")[i].startDateISO.split("T")[0] 
               ==  (now().date() + timedelta(days= 0))|string  %} 
         {% if state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[0]|title  
               ==  "Verjaardag"|title  %}
         {%- set verj.data = verj.data + 
           [{'vn': state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[1],
             'an': state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[2],
             'jr': state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[-1]}] %}

         {% elif state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[0]|title  
               ==  "Vergadering"|title  %}          
         {%- set verg.data = verg.data + 
           [{'wie': state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[1:]|join(" "),
             'uur': state_attr("sensor.agenda_bart", "data")[i].startTime,
             'bij': state_attr("sensor.agenda_bart", "data")[i].location}] %}

           {% elif state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[0]|title  
               ==  "Huwelijksverjaardag"|title  %}       
         {%- set huw.data = huw.data + 
           [{'wie': state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[1:-1]|join(" "),
             'jr': state_attr("sensor.agenda_bart", "data")[i].summary.split(" ")[-1]}] %}

         {% else %} {%- set taak.data = taak.data + 
           [{'wat': state_attr("sensor.agenda_bart", "data")[i].summary,
             'bij': state_attr("sensor.agenda_bart", "data")[i].location,
             'uur': state_attr("sensor.agenda_bart", "data")[i].startTime}] %}
         {% endif -%} {% elif (state_attr("sensor.agenda_bart",
         "data")[i].startDateISO.split("T")[0].split("-")[1:]|join)|int
               -(now().strftime("%m%d"))|int  == 1  %} 
           {%- set taakmorg.data = taakmorg.data + 
           [{'wat': state_attr("sensor.agenda_bart", "data")[i].summary,
             'bij': state_attr("sensor.agenda_bart", "data")[i].location,
             'uur': state_attr("sensor.agenda_bart", "data")[i].startTime}] %}            
         {% endif -%} {% endfor -%}


           {%- if verj.data|count != 0 %}
           {% if verj.data|count == 1 %}
           {%- set ww = "is" %}
           {%- set pers = "persoon" %}    
         {%- else %} {%- set ww = "zijn" %} {%- set pers = "personen" -%}    
               {% endif -%}
              {{ [              
               'vandaag ' + ww + " " + verj.data|count|string + " " + pers  + ' die je kent Jarig',
               'vandaag ' + ww + " " + verj.data|count|string + " " + pers  + ' uit je contacten Jarig',
               'je hebt vandaag ' + verj.data|count|string + ' jarige in je contacten',
               ] | random }}
                    zijnde: ,
           {% for i in range(0, verj.data|count) %}          
           {{ verj.data[i].vn }} {{verj.data[i].an}}
           {{-" "-}}wordt
            {%- if verj.data[i].jr|int| default(false) -%}
           {{" "}}{{-now().strftime("%Y")|int - verj.data[i].jr|int-}}
           {% endif -%} 
           {{" "-}}jaar.              
            {%- if i + 2  == verj.data|count  -%} 
             {{" "-}}en
              {%- elif i + 2 < verj.data|count -%} 
              ,
           {% endif %}                              
            {% endfor %}
             {% endif %}


         {%- if verg.data|count != 0 %} {% if verg.data|count == 1 %}
          {%- set ww = "vergadering" -%}
                 {%- set vv = "een" -%}
                 {%- else -%}
               {%- set ww = "vergaderingen" -%}
                 {%- set vv = verg.data|count|string -%} 
               {%- endif -%}
              {{ [              
               'Je Hebt vandaag ' +  vv + ' ' + ww,
               'vandaag Heb je ' +  vv + ' ' + ww,
               ] | random }}
                    zijnde: ,
           {% for i in range(0, verg.data|count) %}          
           met   {{ verg.data[i].wie }} om,{{ verg.data[i].uur }}  uur               
               {% if  verg.data[i].bij| default(false) %}
               {% if  verg.data[i].bij|title == "Thuis" %}              
               {% elif  verg.data[i].bij|title == "Ziekenhuis" %}
                ,in het 
                {% else %} 
                bij
                {% endif %} 
                {{ verg.data[i].bij }} 
                {%- endif -%}
              {%- if i + 2  == verg.data|count  -%} 
             {{" "-}}en
              {%- elif i + 2 < verg.data|count -%} 
              ,
           {% endif %}                            
            {% endfor %}
             {% endif %}


           {%- if huw.data|count != 0 %}
         {% if huw.data|count == 1 %}
          {%- set ww = "viert" -%}
                 {%- set pers = "koppel" -%}    
                 {%- else -%}
               {%- set ww = "vieren" -%}
               {%- set pers = "koppels" -%}    
               {%- endif -%}
            {{ [              
               'er ' + ww + ' vandaag ' + huw.data|count|string + " " + pers + ' hun Huwelijksverjaardag',
               ] | random }}
               , zijnde:   
           {% for i in range(0, huw.data|count) %} 
           {{huw.data[i].wie}}
            {% if huw.data[i].jr <= "2" %}
             zijn
             {{ now().strftime("%Y")|int-huw.data[i].jr|int}}
             jaar Getrouwd    
              {% endif %}    
            {%- if i + 2  == huw.data|count  -%} 
             {{" "-}}en
              {%- elif i + 2 < huw.data|count -%} 
              ,
           {% endif %}                              
            {% endfor %}
             {{ [              
               'Vergeet deze niet te feliciteren',
               'Vergeet geen berichtje te doen',
               'Vergeet niet even contact op te nemen',
               'Denk daar even aan vandaag',
               'Denk eraan om deze proficiat te wensen',
               ] | random }}
             {% endif %}


         {%- if taak.data|count != 0 %}
           {% if taak.data|count == 1 %}
            {%- set ww = "taak" -%}                   
                 {%- else -%}
               {%- set ww = "taken" -%}               
               {%- endif -%}             
               {{ [              
               'Je hebt vandaag '  + taak.data|count|string + " " + ww ,
                   ] | random }}             
               , zijnde:
           {% for i in range(0, taak.data|count) %} 
           om {{ taak.data[i].uur }}  uur  , {{taak.data[i].wat}} 
           {% if  taak.data[i].bij| default(false) %}
           {% if  taak.data[i].bij|title == "Thuis" %}              
           {% elif  taak.data[i].bij|title == "Ziekenhuis" %}
                ,in het 
                {% else %} 
                bij
                {% endif %} 
                {{ taak.data[i].bij }} 
              {% endif %}   
            {%- if i + 2  == taak.data|count  -%} 
             {{" "-}}en
              {%- elif i + 2 < taak.data|count -%} 
              ,
           {% endif %}                              
            {% endfor %}
             {% endif %}


           {%- if taakmorg.data|count != 0 %}
         {% if taakmorg.data|count == 1 %}
            {%- set ww = "taak" -%}                   
                 {%- else -%}
               {%- set ww = "taken" -%}               
               {%- endif -%}             
               {{ [              
               'en denk eraan, morgen heb je '  + taakmorg.data|count|string + " " + ww ,
                   ] | random }}             
               , zijnde:
           {% for i in range(0, taakmorg.data|count) %} 
            {% if taakmorg.data[i].wat.split(" ")[0] == 'Verjaardag' %}
                {{taakmorg.data[i].wat.split(" ")[:-1]|join(' ')}}
            {% else %}
                om {{ taakmorg.data[i].uur }}  uur  , {{taakmorg.data[i].wat}} 
            {% endif %} 
           {% if  taakmorg.data[i].bij| default(false) %}
           {% if  taakmorg.data[i].bij|title == "Thuis" %}              
           {% elif  taakmorg.data[i].bij|title == "Ziekenhuis" %}
                ,in het 
                {% else %} 
                bij
                {% endif %} 
                {{ taakmorg.data[i].bij }} 
              {% endif %}   
            {%- if i + 2  == taakmorg.data|count  -%} 
             {{" "-}}en
              {%- elif i + 2 < taakmorg.data|count -%} 
              ,
           {% endif %}                              
            {% endfor %}
             {% endif %}

         {% endmacro %}

            
         {# a macro that removes all newline characters, empty spaces, and
         returns formatted text. Also replaces all Underscores with Spaces  #}

         {%- macro cleanup(data) -%}
           {%- for item in data.split("\n")  if item | trim != "" -%}
             {{ item | trim | replace("_", " ") }} {% endfor -%}
         {%- endmacro -%}

         {# ********************************************* #}

         {#  ******** Start the Speech routines ********  #}

         {# ********************************************* #}

         {# a macro to call all macros :)  #}

         {%- macro mother_of_all_macros() -%}

            


          {% if call_Begroeting == 1 %}
             {{ Begroeting() }}
           {% endif %}
           
           {% if call_Verjaardag == 1 %}
             {{ Verjaardag() }}
           {% endif %}  
           {% if call_Datum == 1 %}
             {{ Datum() }}
           {% endif %}

           {% if call_Tijd == 1 %}
             {{ Tijd() }}
           {% endif %}

           {% if call_tempnu == 1 %}
             {{ tempnu() }}
           {% endif %}

          {% if call_wolknu == 1 %}
             {{ wolknu() }}
           {% endif %}


           
           {% if call_Weerbericht == 1 %}
            
             {{ Weerbericht() }}
            
           {% endif %}


           {% if call_Taken == 1 %}
             {{ Taken() }}
           {% endif %}

           {% if call_Waterdruk == 1 %}
             {{ Waterdruk() }}
           {% endif %}


         {%- endmacro -%}



         {{- cleanup(mother_of_all_macros()) -}}       
  - service: counter.increment
    data: {}
    target:
      entity_id: |-
        {% if call_Weerbericht == 1 %}
            counter.dagmelding
        {% else %}
          none
        {% endif %}
  - service: counter.increment
    data: {}
    target:
      entity_id: |-
        {% if call_Feestdag == 1 %}
            counter.feestdagmelding
        {% else %}
          none
        {% endif %}     
trace:
  stored_traces: 40
mode: parallel
max: 50