Smarthome read Value

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
firstfacility
User
Beiträge: 28
Registriert: Samstag 20. Dezember 2014, 09:26

Hallo Forum,
ich nutze von RWE das Smarthome System und schalte und verändere zurzeit über die Webseite per Script einige Zustände. Nun benötige ich jedoch die Zustände meiner Aktoren um damit weiter arbeiten zu können. Hierzu nutze ich mechanize um mich auf der Seite anzumelden um die komplette Seite zu laden.

Code: Alles auswählen

import mechanize
import time, re

br = mechanize.Browser()
br.open('https://mobile.rwe-smarthome.de/MobileWEb/Logon/Logon')
br.select_form(nr=0)
br['UserName'] = 'geheim'
br['Password'] = 'geheim'
br.submit()

response = br.open('https://mobile.rwe-smarthome.de/MobileWeb/JsonApi/GetLogicalDeviceState/)

print response



Soweit so gut. Als Ausgabe bekomme ich den Code der Webseite mit den Wert den ich benötige. Einen Auszug füge ich an :

Code: Alles auswählen

$(function() {
            ActuatorManager.load(
                ["32e81969-9c21-402b-b754-71d7bbd85e85","8514ad86-ed9e-475c-ad86-3213a25c8089","21b26bf2-2f2d-473b-8b8d-c14d157b79d4","66f15bd2-e03f-4194-abb6-69f454b8da0b","1d41cccd-3e34-4785-a051-6fb04ed36e52","3775a3c8-16d6-405e-936a-c2bf5a4aa959","fc8c5af3-5601-424b-8f3b-fb659d42d449","0d377a79-e6ee-42c5-9207-179ebded4dc8"],
                [{"LocationId":"32e81969-9c21-402b-b754-71d7bbd85e85","Actuators":[{"Id":"d7dadd3e-6b2e-4907-ac23-3b387b0b069b","Name":"Signal 1","Location":"ÜBERGREIFEND","AppId":"sh://core.builtin","DeviceType":"Wsd","CurrentValue":null,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":false,"IsReadOnly":false,"IsContainer":false,"CssClassName":"alarm","BaseDeviceIds":["de92509e-4f4a-4d6e-9f42-6735643f4275"],"IconCssClassName":"AUS"},{"Id":"941c5197-9e87-4b1a-8877-47b01be3d220","Name":"Zustandsvariable 1","Location":"ÜBERGREIFEND","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["ace5f365-d4d5-4b2b-a3be-79d0e31a2178"],"IconCssClassName":""}]},{"LocationId":"8514ad86-ed9e-475c-ad86-3213a25c8089","Actuators":[{"Id":"74d0650f-473b-49d1-a402-087caaa176a4","Name":"Deckenlicht","Location":"WOHNZIMMER","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"light","BaseDeviceIds":["45cc0d67-099e-4898-8edb-d2f761a89226"],"IconCssClassName":""},{"Id":"706781b8-0b01-42df-bc4d-59cda269cab8","Name":"Stehlampe","Location":"WOHNZIMMER","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":1,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"light","BaseDeviceIds":["480ef73b-ecfc-4c28-aff1-89aacf1dbcf9"],"IconCssClassName":""},{"Id":"5a9384db-bf41-4ce8-84ef-eadf8c88be6c","Name":"Licht 4","Location":"WOHNZIMMER","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":1,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"light","BaseDeviceIds":["a87140e2-8c1f-4a87-9dde-72d636b50e2d"],"IconCssClassName":""},{"Id":"9fdf6577-2b89-43d1-86d6-f41446de7b28","Name":"Zustandsvariable 1","Location":"WOHNZIMMER","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["7796ab96-c240-4af1-9b18-df6584190705"],"IconCssClassName":""},{"Id":"af671e3f-25f3-4ca6-80c8-d296627dc99b","Name":"Zustandsvariable 2","Location":"WOHNZIMMER","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["e11a6dbd-0ac8-4b0f-b3e0-c210f6494d87"],"IconCssClassName":""},{"Id":"7221422f-22bd-446a-98db-17975ce47c25","Name":"Zustandsvariable 3","Location":"WOHNZIMMER","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["0770a4c7-99f6-4ff6-9057-c463e91bd54c"],"IconCssClassName":""}]},{"LocationId":"21b26bf2-2f2d-473b-8b8d-c14d157b79d4","Actuators":[{"Id":"0781cb70-7ef6-4a8b-81af-9618b6950b88","Name":"Klimaanlage","Location":"SCHLAFZIMMER","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"elecdev","BaseDeviceIds":["1300879d-374c-4380-b63d-ee3698762847"],"IconCssClassName":""},{"Id":"4ee983f2-3699-4cba-9895-5e3f5a3ecbe3","Name":"Markise 1","Location":"SCHLAFZIMMER","AppId":"sh://core.builtin","DeviceType":"Isr2","CurrentValue":25,"MinValue":0,"MaxValue":100,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall awning","BaseDeviceIds":["dcf0b836-684e-4c41-8c96-02733f3c303e"],"IconCssClassName":""}]},{"LocationId":"66f15bd2-e03f-4194-abb6-69f454b8da0b","Actuators":[{"Id":"993725bd-d1b9-469d-95f8-3937e5057279","Name":"Zustandsvariable 1","Location":"BAD","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["a7bb6e7f-a4c1-4d6e-b18c-27fedfbc0f2f"],"IconCssClassName":""},{"Id":"77b66ed7-e638-4d8a-bbbd-31d7b8574dbb","Name":"Heizung","Location":"BAD","AppId":"sh://core.builtin","DeviceType":"Rst","CurrentValue":6,"MinValue":6.0,"MaxValue":30.0,"Step":0.5,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"heating","BaseDeviceIds":["43e95a01-03bb-4ad4-9deb-2560519cad26","43e95a01-03bb-4ad4-9deb-2560519cad26"],"IconCssClassName":""}]},{"LocationId":"1d41cccd-3e34-4785-a051-6fb04ed36e52","Actuators":[{"Id":"6b134700-ddeb-4573-a712-7abd920efbeb","Name":"Licht unten","Location":"FLUR","AppId":"sh://core.builtin","DeviceType":"Iss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall light","BaseDeviceIds":["ffba6c7a-7841-4df8-b334-88077b5ddd40"],"IconCssClassName":""},{"Id":"6b27d659-d321-441c-8d7b-d614151440a6","Name":"Licht oben","Location":"FLUR","AppId":"sh://core.builtin","DeviceType":"Iss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall light","BaseDeviceIds":["0701aa13-e975-4239-8fd0-fa4ec70de541"],"IconCssClassName":""},{"Id":"7bbef4f3-7178-491e-bae2-d8c2dc8f1037","Name":"Zustandsvariable 1","Location":"FLUR","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["8f82370d-f7b9-44dd-b82f-64f587b9ffb7"],"IconCssClassName":""},{"Id":"b5930fec-7b91-4db2-8d41-aaf6c6f9de9b","Name":"Cola Automat","Location":"FLUR","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":1,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"elecdev","BaseDeviceIds":["ad311b71-b796-467e-8d06-5f45730e7bc9"],"IconCssClassName":""}]},{"LocationId":"3775a3c8-16d6-405e-936a-c2bf5a4aa959","Actuators":[{"Id":"c866e29b-5a48-47f5-8289-7be43399699f","Name":"Licht 2","Location":"KÜCHE","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"light","BaseDeviceIds":["c812cab2-12ba-4f08-b9ef-91521526ff4c"],"IconCssClassName":""},{"Id":"445a4fab-d830-465b-b9c4-c06433ef6798","Name":"Licht 1","Location":"KÜCHE","AppId":"sh://core.builtin","DeviceType":"Iss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall light","BaseDeviceIds":["c13c195b-085e-43aa-91a5-61a706673b25"],"IconCssClassName":""},{"Id":"a880b9fe-96b2-4f26-bf9c-940605723d64","Name":"Rolladen 1","Location":"KÜCHE","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["16d9a4b3-7cdd-410b-8a82-ab923d309083"],"IconCssClassName":""},{"Id":"962bfb15-5665-46cf-a22f-ed87b46de647","Name":"Heizung","Location":"KÜCHE","AppId":"sh://core.builtin","DeviceType":"Rst","CurrentValue":6.0,"MinValue":6,"MaxValue":30,"Step":0.5,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"heating","BaseDeviceIds":["ca396f6b-eef7-41c2-9c61-ee9f27d9f0cc","ca396f6b-eef7-41c2-9c61-ee9f27d9f0cc"],"IconCssClassName":""},{"Id":"6be20bb6-7f78-4ea3-a3f6-5844d7e05155","Name":"Rollladen 1","Location":"KÜCHE","AppId":"sh://core.builtin","DeviceType":"Isr2","CurrentValue":100,"MinValue":0,"MaxValue":100,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall shutter","BaseDeviceIds":["e58950a6-0f43-45c6-be24-faad6ad1ee03"],"IconCssClassName":""},{"Id":"8af37956-e4c0-4ac4-99ac-0251f2e1d40b","Name":"Kaffeeemaschine","Location":"KÜCHE","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"elecdev","BaseDeviceIds":["f3929d19-72ed-4575-aabd-e9ccceac55df"],"IconCssClassName":""},{"Id":"eb84d873-efb6-43ec-97a1-80ed2bdb4aeb","Name":"Abzugshaube","Location":"KÜCHE","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":null,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"elecdev","BaseDeviceIds":["d0702ba8-95fe-4a5f-9a3f-999acce2131d"],"IconCssClassName":""}]},{"LocationId":"fc8c5af3-5601-424b-8f3b-fb659d42d449","Actuators":[{"Id":"8f786845-cb2a-4938-8af6-d832432e5f7d","Name":"Zustandsvariable 1","Location":"KINDERZIMMER","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["bff25ab4-df8a-4613-abb2-cef9384a7840"],"IconCssClassName":""},{"Id":"a9cd32b6-a7d5-421c-b104-9565b684b6e3","Name":"Heizung","Location":"KINDERZIMMER","AppId":"sh://core.builtin","DeviceType":"Rst","CurrentValue":6.0,"MinValue":6,"MaxValue":30,"Step":0.5,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"heating","BaseDeviceIds":["cea92339-7034-4a25-aea1-4520c115e30b","cea92339-7034-4a25-aea1-4520c115e30b"],"IconCssClassName":""},{"Id":"25248bf8-b602-4454-b929-623addd0551d","Name":"Rollladen 1","Location":"KINDERZIMMER","AppId":"sh://core.builtin","DeviceType":"Isr2","CurrentValue":100,"MinValue":0,"MaxValue":100,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall shutter","BaseDeviceIds":["5123ee7e-10bc-4642-8dea-340e8f3b561d"],"IconCssClassName":""}]},{"LocationId":"0d377a79-e6ee-42c5-9207-179ebded4dc8","Actuators":[{"Id":"650f3d77-dcd1-4672-a37d-3e8d7e5178d7","Name":"Kleines Licht","Location":"ESSEN","AppId":"sh://core.builtin","DeviceType":"Pss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"light","BaseDeviceIds":["a286024a-f9f8-48a6-8c23-85c8705327e7"],"IconCssClassName":""},{"Id":"ab45b99d-7019-45b4-b597-89ef1680e265","Name":"Grosses Licht Fenster","Location":"ESSEN","AppId":"sh://core.builtin","DeviceType":"Iss","CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall light","BaseDeviceIds":["244847c4-e2fe-4488-8520-b8f676113b24"],"IconCssClassName":""},{"Id":"3aa1b195-d7b7-4250-a42a-624293718705","Name":"Rolladen 1","Location":"ESSEN","AppId":"sh://VariableActuator.builtin","DeviceType":null,"CurrentValue":0,"MinValue":0,"MaxValue":1,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"VariableActuator-RWE","BaseDeviceIds":["3ca68ed9-abe0-4503-b743-d9bb2e23c5fe"],"IconCssClassName":""},{"Id":"4b40c479-ed34-4013-9faf-f9ca28aba2f6","Name":"Heizung","Location":"ESSEN","AppId":"sh://core.builtin","DeviceType":"Rst","CurrentValue":6.0,"MinValue":6.0,"MaxValue":30.0,"Step":0.5,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"heating","BaseDeviceIds":["70e68bef-c921-4dd3-8875-1f3d3d41ac06","70e68bef-c921-4dd3-8875-1f3d3d41ac06"],"IconCssClassName":""},{"Id":"35e85ddf-8807-4af7-b110-be9cabd45ee2","Name":"Markise 1","Location":"ESSEN","AppId":"sh://core.builtin","DeviceType":"Isr2","CurrentValue":0,"MinValue":0,"MaxValue":100,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall awning","BaseDeviceIds":["2a738961-a3ae-4c8e-b56b-585470002c2f"],"IconCssClassName":""},{"Id":"52eb0908-21b1-49dc-80e5-4843f282fc7f","Name":"Rollladen 1","Location":"ESSEN","AppId":"sh://core.builtin","DeviceType":"Isr2","CurrentValue":100,"MinValue":0,"MaxValue":100,"Step":1,"IsEnabled":true,"IsReadOnly":false,"IsContainer":false,"CssClassName":"inwall shutter","BaseDeviceIds":["f94e6f3d-b626-49cf-9831-ad4aa6ae16f8"],"IconCssClassName":""}]}]); 
        });
    </script>


Ich benötige aus zb. ","CurrentValue":0," die 0 oder 1 je nach Zustand. Wie könnte ich nun da rangehen vielleicht hätte jemand einen Tipp wie ich den Quellcode am besten aufdröseln könnte.

Gruß
Frank
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das JsonApi in dem Pfad der URL ist ein Indiz dafür sein dass es möglich ist JSON als Antwort zurückzubekommen statt irgendein HTML Dokument. Da JSON wesentlich einfacher und fehlerfreier zu verarbeiten ist, würde ich versuchen so eine Antwort zu bekommen. Dazu würde ich mal mit den Developer Tools deines Browsers mal zu schauen ob irgendwelche JSON Requests gemacht werden und an die URL einen Request zu schicken mit dem Header "Accept: application/json".
Antworten