Które okno jest otwarte?

Witajcie.
Chciałbym poprosić o pomoc w sprawdzeniu które będzie mówiło które okno jest nie zamknięte albo że wszystkie są zamknięte? Taka informacja przy wyjściu z domu.
Nie wiem jak za to się zabrać.
Poczyniłem takie coś : flows.json (16,4 KB) ale za nic w świecie nie działa.
Czy ktoś coś?

1 Like

Najprościej ale najmniej elegancko to robisz current_state od danego okna i sprawdzasz czy jest on/of w if state i gdy jest on co oznacz, że jest otwarte to dodajesz do komunikatu (tak jak mam to zrobione w powiadomieniu porannym) później kolejny current_state i znowu weryfikacja on/off i jak on to dodajesz do komunikatu. Jak już sprawdzisz wszystkie to odtwarzasz komunikat. Podobnie robisz na off tylko tam nie dodajesz nic do komunikatu - jak nie powstanie komunikat to znaczy, że jest off wszędzie i albo to olewasz albo dajesz sobie komunikat wszystkie okna zajęte.

Powyższa metoda jest mało elegancka ale jest prosta do zrobienia i zadziała. Masz też na czym się wzorować bo coś podobnego jest na filmie z powiadomieniem porannym.

To masz tutaj, zasada działania taka sama jak sprawdzanie śmieci u mnie.
sprawdza wszystkie jak jakieś są to sprawdza jakie i komponuje wiadomosć.
Wszystko jest na forum.

@Adam_Nowicki możesz skorzystać z group, sprawdź Licznik otwarcia drzwi - #11 przez macek, tam jest przykład. Opisywany przeze mnie błąd związany z sensor.open_door_count został już naprawiony.

O tym informuje encja group.doors, jeżeli jest OFF to wszystkie drzwi są zamknięte, jeżeli ON to co najmniej jedne drzwi są otwarte, jakie? postaram się to zaraz dopisać jak będę przy komputerze. Resztę zostawiam do realizacji w Node-RED.

Tylko to wychodzi tak nie do końca tak jak bym chciał - Posiadam centralke Fibaro i tam jest coś takiego:
baza w której przechowywane jest

  • kuchnia okno - 1 lub 0
  • pokój okno - 1 lub 0 itd
    na koniec scena która patrzy do bazy i jeżeli jest jakaś jedynka to czyta jaka i daje komunikat: okno otwarte w kuchni, jeżeli wszędzie są 0 wtedy mówi wszystkie okna zamknięte.
    Czy tu jest taka opcją - wydaję mi się to rozwiązanie super. Ale niestety moje wiadomości niestety nie pozwalają nawet rozpocząć tematu.

A teraz ja się pogubiłem :frowning:, chcesz Fibaro zastąpić HA? ale przy okazji chcesz to co było fajnego w Fibaro przenieść do HA?

nie nie fibaro jest gdzie indziej HA jest w innym lokalu i chyba bardziej mi się podoba

Bez problemu da się zrobić to samo :slight_smile:. Nie wiem na jakim etapie jesteś z tym w HA, co masz, co Ci brakuje?

Chciałbym dokładnie to samo co mówi @marcinwojciesz:
Nie mam pojęcia jak za to się zabrać.
Posiadam czujniki przy oknach, Ich stan to on/off.
Co mam? to co w pierwszym poście nie wiem jak dalej to ruszyć. :frowning:

Do wklejenia w Node-Red (import):

[{"id":"f6a80b77.904ed","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"d496520d.00729","type":"api-current-state","z":"f6a80b77.904ed","name":"Okno w salonie","server":"6334d9e6.c75ed8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"binary_sensor.aqara_window_salon_contact","state_type":"str","state_location":"salon","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":300,"y":180,"wires":[["992b841.b299ef8"]]},{"id":"d8e1fcce.9f225","type":"comment","z":"f6a80b77.904ed","name":"Sprawdź okna","info":"","x":290,"y":140,"wires":[]},{"id":"992b841.b299ef8","type":"api-current-state","z":"f6a80b77.904ed","name":"Okno w kuchni","server":"6334d9e6.c75ed8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"binary_sensor.aqara_window_kitchen_contact","state_type":"str","state_location":"kuchnia","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":480,"y":180,"wires":[["d71207d6.0f36b8"]]},{"id":"d71207d6.0f36b8","type":"api-current-state","z":"f6a80b77.904ed","name":"Okno w sypialni","server":"6334d9e6.c75ed8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"binary_sensor.aqara_window_bedroom_contact","state_type":"str","state_location":"sypialnia","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":660,"y":180,"wires":[["2da1c0ec.908fd"]]},{"id":"2da1c0ec.908fd","type":"api-current-state","z":"f6a80b77.904ed","name":"Okno u Emilii","server":"6334d9e6.c75ed8","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"binary_sensor.aqara_window_emilia_contact","state_type":"str","state_location":"emilia","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":830,"y":180,"wires":[["4eabdf60.27f3b8"]]},{"id":"4eabdf60.27f3b8","type":"function","z":"f6a80b77.904ed","name":"","func":"if (msg.salon==\"on\"){\n msg.salon=\" Okno w salonie. \";\n msg.okna=\"on\"\n} else { msg.salon=\" \"\n}\n\nif (msg.kuchnia==\"on\"){\n msg.kuchnia=\" Okno w kuchni. \";\n msg.okna=\"on\"\n} else { msg.kuchnia=\" \"\n}\n\nif (msg.sypialnia==\"on\"){\n msg.sypialnia=\" Okno w sypialni. \";\n msg.okna=\"on\"\n} else { msg.sypialnia=\" \"\n}\n\nif (msg.emilia==\"on\"){\n msg.emilia=\" Okno u Emilii. \";\n msg.okna=\"on\"\n} else { msg.emilia=\" \"\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1000,"y":180,"wires":[["a6504fd8.cced6"]]},{"id":"a6504fd8.cced6","type":"function","z":"f6a80b77.904ed","name":"Wiadomość","func":"if (msg.okna==\"on\"){\nmsg.wiadomosc = \"OK, urządzenia wyłączone. Uwaga! Wykryto otwarte okna. \"+msg.salon+msg.kuchnia+msg.sypialnia+msg.emilia+\" Przed wyjściem zamknij okna.\"\n} else { msg.wiadomosc = \"OK, urządzenia wyłączone.\"\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":490,"y":340,"wires":[["2add1bb3.cd73e4"]]},{"id":"2add1bb3.cd73e4","type":"function","z":"f6a80b77.904ed","name":"Gotowa wiadomość na głośniki","func":"msg.payload = \n{\n \"data\":\n {\n \"message\": msg.wiadomosc,\n \"language\":\"pl\",\n }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":730,"y":340,"wires":[["6a4c00a6.ca37c"]]},{"id":"6a4c00a6.ca37c","type":"api-call-service","z":"f6a80b77.904ed","name":"","server":"6334d9e6.c75ed8","version":1,"debugenabled":false,"service_domain":"tts","service":"google_translate_say","entityId":"media_player.mini_group","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1030,"y":340,"wires":[[]]},{"id":"75e534fa.3ea46c","type":"inject","z":"f6a80b77.904ed","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":180,"wires":[["d496520d.00729"]]},{"id":"6334d9e6.c75ed8","type":"server","name":"Home Assistant","addon":true}]

2 Likes

@Zordrac - Świetne i Matko Święta jakie proste - bardzo dziękuje

@Zordrac - Piekna robota bardzo dziękuje - faktycznie proste