Pieniä kysymyksiä ohjelmoinnista

Liittynyt
07.01.2021
Viestejä
678
Tai sen avaimen voi ihan vaan echottaakin tiedostoon siellä remoten shellissä. Eli

echo [avain] > ~/.ssh/authorized_keys

([avain] = pub-tiedoston sisältö sellaisenaan)
 
Liittynyt
17.10.2016
Viestejä
14 550
Millä helvetillä saan tuon filun nyt sinne laitteelle?
Copy-pasteat. Eli otat ssh-yhteyden kuten ennenkin, eli salasanalla. Avaat tuon tiedoston ~/.ssh/authorized_keys tai luot jos sellaista ei vielä ole. Ja sinne sitten pasteat sen julkisen avaimen .pub-tiedostosta. Jos tiedostossa oli aiempia rivejä, jätä ne ennalleen ja laitat sen oman julkisen avaimen uudelle riville tiedoston loppuun. Siellä on siis julkisia avaimia omilla riveillään. Se kertoo, että niilla avaimilla palvelin antaa ottaa ssh-yhteyden. Ja vain niillä.
 
Liittynyt
19.10.2016
Viestejä
1 916
Hitto kun ukot tietää, ja mä olen ihan hölmö. En mä tota saanut tehtyä. Mua ärsyttää tehdä asioita, joista mä en ole täysin enää tietoinen, että mitä siinä tapahtuu. Onnistuin tosiaan generomaan avaimen sillä lähdekoneella. Pääsin SSH:lla ja tunnareilla sisään sinne kohteeseen, mutta sitten aloin empimään. Ensinnäkään tuota authorized_keys kansiota ei ollut enkä sellaista päässyt luomaan kun ei ollut kuulemma oikeuksia (olin su:lla kuitenkin kiinni). Lisäksi multitaskasin googlesta ja siellä sanottiin, että kaikki mitä kyseiselle laitteelle teen pyyhkiytyy pois kun uusia firmiksiä tai konfeja ajetaan kontrollerin kautta. Eli toisin sanoen, luovutin. Ei tuo varmaan todellisuudessa noin vaikeaa ole, mutta meikäläisen asenne nyt mättää. Kiitti tähän asti jeesistä kuitenkin. Täytyy hakea uudelleen vauhtia kun olen hetken lepäillyt. :)
 
Liittynyt
07.01.2021
Viestejä
678
authorized_keys ei ole kansio vaan tiedosto, jonka luot tuohon .ssh-kansioon jos sellaista ei ole ennestään.
 
Liittynyt
17.10.2016
Viestejä
5 334
Tietty jos tuo publickey-autentikaatio ei mitenkään ota luonnistuakseen niin voi käyttää vaikkapa sshpass -komentoa ja laittaa salasana johonkin käyttöoikeuksilla suojattuun tiedostoon ja komentaa rebootti ssh:n yli. Tyyliin:

sshpass -f /polku/salasanatiedosto.txt ssh root@192.168.0.1 'reboot'

tietty tuohon sitten polku, salasanatiedosto, käyttäjätunnus ja ip-osoite oikeaksi. Ja tosiaan tuo salasanatiedosto kannattaa olla sitten kunnolla suojattu. En muista saiko tuohon jotenkin luettua jonkun salatun salasanafileen tms. Parempi tuokin kuin suoraan salasanan laittaminen johonkin skriptiin mutta jos vaan tuon publickeyn saa toimimaan niin onhan se parempi.
 
Liittynyt
19.10.2016
Viestejä
1 916
authorized_keys ei ole kansio vaan tiedosto, jonka luot tuohon .ssh-kansioon jos sellaista ei ole ennestään.
Mä siis mielestäni yritin päästä SSH kansioon mutta sellaista ei ollut olemassa. Nyt mä toisaalta mietin, että yritinkö luoda väärällä komennolla tiedostoa ja samalla kansiota..joita kumpaakaan ei ole olemassa. Onneksi en ole ihan tällä alalla...tai jos olisin niin en varmasti pitkään.
 
Liittynyt
19.10.2016
Viestejä
1 916
@Paapaa . Toivottavasti en nyt sotke tätä ketjua, mutta: Kun huawein modeemi temppuille katkomalla satunnaisesti wan-linkin alas, niin Unifin USG ei ymmärrä tätä. Internet aidosti toimii jos olen modeemissa suoraan kiinni, mutta yksikään laite kotiverkossa (kaikki Unifin verkossa USG:n takana) eivät pääse internetiin kun USG:n ja Huawein välillä ei yhteistoiminta pelaa. Tilanteen saa korjattua ottamalla fyysisesti USG:stä wan-kaapelin irti, mutta kun en ole kotona, niin kaapelin tuuletus ei onnistu. Tätä varten yritän kuumeisesti miettiä tapaa automatisoida asiaa. Nyt kun pingi ei kulje kotiverkosta ulos, ajaisin kotiverkossa olevalla palvelimella scriptin joka boottaa USG:n ja tämän jälkeen rokrok. Siinä lyhykäisyydessään, toivottavasti avasi asiaa.
 
Liittynyt
17.10.2016
Viestejä
5 334
Tuli tuosta reboot-hässäkästä toinenkin, jopa ehkä fiksumpi tapa toteuttaa tuo. Vähän vastaavan skriptin olen joskus pariin purkkiin laittanutkin, eli ajetaan esim cronilla vaikkapa 5min välein skripti joka pingaa jotain internetin osoitetta ja jos pingi failaa niin annetaan reboot. Itselläni tuo taisi olla tehty niin että jos kolmella suorituskerralla pingi epäonnistui niin sen jälkeen laite lähetti tekstiviestin ja ilmoitti ettei saa tiettyyn osoitteeseen yhteyttä. Tuolloin ei tarvitsisi ollenkaan ssh:n kanssa touhuta vaan tuo purkki osaisi ihan itsekseen bootata itsensä.
 
Liittynyt
19.10.2016
Viestejä
38
Mä siis mielestäni yritin päästä SSH kansioon mutta sellaista ei ollut olemassa. Nyt mä toisaalta mietin, että yritinkö luoda väärällä komennolla tiedostoa ja samalla kansiota..joita kumpaakaan ei ole olemassa. Onneksi en ole ihan tällä alalla...tai jos olisin niin en varmasti pitkään.
Unifi laitteisiin ssh avaimet lisätään unifi controllerin kautta. Settings -> System -> Network Device SSH Authentication -> SSH keys
 
Liittynyt
19.10.2016
Viestejä
1 916
Unifi laitteisiin ssh avaimet lisätään unifi controllerin kautta. Settings -> System -> Network Device SSH Authentication -> SSH keys
Moi, tämän löysin itsekin asetuksista. Kävin katsomassa ohjeet ja loin avaimen. Millä tuo tunnuksen toimiminen voidaan todentaa? Kun vein avaimen unifille ja tallensin (annoin keksimäni käyttäjätunnuksen), niin pitäisikö minun siltä aloittavalta koneelta päästä ssh:lla pelkällä tunnuksella Unifin controlleriin kiinni. Näin siis oletan, mutta ei onnistunut.
 
Liittynyt
17.10.2016
Viestejä
5 334
Moi, tämän löysin itsekin asetuksista. Kävin katsomassa ohjeet ja loin avaimen. Millä tuo tunnuksen toimiminen voidaan todentaa? Kun vein avaimen unifille ja tallensin (annoin keksimäni käyttäjätunnuksen), niin pitäisikö minun siltä aloittavalta koneelta päästä ssh:lla pelkällä tunnuksella Unifin controlleriin kiinni. Näin siis oletan, mutta ei onnistunut.
Yksinkertaisuudessaan pitäisi toimia ihan tyyliin:

ssh luomasi_käyttäjätunnus@unifin_ip_osoite

Tosiaan, SSH-avain (julkinen puolisko) pitää olla sinne laitteeseen laitettuna niinkuin nyt pitäisi olla. Sitten tuolla koneella miltä otat yhteyttä pitää olla tuon avaimen toinen puolisko (privaattipuolisko) ja se varmaankin onkin siellä. Kokeilithan ottaa ssh-yhteyttä samalla käyttäjällä millä loit nuo avaimet?

Jos tuo SSH-yhteys ei onnistu niin herjaako se jotain virhettä vai kysyykö kuitenkin salasanaa?
 
Liittynyt
19.10.2016
Viestejä
1 916
Yksinkertaisuudessaan pitäisi toimia ihan tyyliin:

ssh luomasi_käyttäjätunnus@unifin_ip_osoite

Tosiaan, SSH-avain (julkinen puolisko) pitää olla sinne laitteeseen laitettuna niinkuin nyt pitäisi olla. Sitten tuolla koneella miltä otat yhteyttä pitää olla tuon avaimen toinen puolisko (privaattipuolisko) ja se varmaankin onkin siellä. Kokeilithan ottaa ssh-yhteyttä samalla käyttäjällä millä loit nuo avaimet?

Jos tuo SSH-yhteys ei onnistu niin herjaako se jotain virhettä vai kysyykö kuitenkin salasanaa?
Seurasin näitä ohjeita:

Halusin ensiksi todentaa Puttylla, että kuvio toimii. Ei vaan toimi.
Public key viety Unifille ja keksitty käyttäjänimi.
1660106018011.png

Tämän jälkeen "save" ja olen vielä erikseen provisioinut kontrollerin.

Seuraavaksi Puttyyn:
1660106294292.png

Ja privatekey paikalleen:
1660106373600.png


Sitten Open.
1660106474974.png


Ja kertoo, että server (eli usg) hylkii avainta ja pyytää salasanaa, jota ei luontaisesti tunnuksella ole. :(
 
Liittynyt
17.10.2016
Viestejä
5 334
Seurasin näitä ohjeita:

Halusin ensiksi todentaa Puttylla, että kuvio toimii. Ei vaan toimi.
Public key viety Unifille ja keksitty käyttäjänimi.

Tämän jälkeen "save" ja olen vielä erikseen provisioinut kontrollerin.

Seuraavaksi Puttyyn:

Ja privatekey paikalleen:


Sitten Open.


Ja kertoo, että server (eli usg) hylkii avainta ja pyytää salasanaa, jota ei luontaisesti tunnuksella ole. :(
No, ainakin tuosta selkeästi käy ilmi että jotain vikaa avainparissa on ja USG sentään ymmärtää että avaimella yritetään kirjautua eli itse lähtisin ehkä generoimaan nuo avaimet uudestaan ja yrittämään uudestaan. Itsekin joskus tappelin puttyn kanssa puttygen:llä generoitujen avainten kanssa enkä nyt yhtäkkiä muista mikä siinä kiikasti. Itselläni siis ei ole (vielä) Ubiquitin laitteita joten en osaa sanoa onko niissä jotain omia ihmeellisyyksiä mutta parin kymmenen vuoden linux- ja ssh-kokemus kuitenkin :D

Hetkinen, tuohan tuolla kertoo että tuo avain pitäisi alkaa "ssh-rsa" ja alla kuitenkin näkyy jotain AA... eli olisiko tuossa vika?
 
Liittynyt
19.10.2016
Viestejä
1 916
No, ainakin tuosta selkeästi käy ilmi että jotain vikaa avainparissa on ja USG sentään ymmärtää että avaimella yritetään kirjautua eli itse lähtisin ehkä generoimaan nuo avaimet uudestaan ja yrittämään uudestaan. Itsekin joskus tappelin puttyn kanssa puttygen:llä generoitujen avainten kanssa enkä nyt yhtäkkiä muista mikä siinä kiikasti. Itselläni siis ei ole (vielä) Ubiquitin laitteita joten en osaa sanoa onko niissä jotain omia ihmeellisyyksiä mutta parin kymmenen vuoden linux- ja ssh-kokemus kuitenkin :D

Hetkinen, tuohan tuolla kertoo että tuo avain pitäisi alkaa "ssh-rsa" ja alla kuitenkin näkyy jotain AA... eli olisiko tuossa vika?
Mä huomasin just itse saman ja kävin muuttamassa asetusta, nyt sitten USG jäi "Getting ready" kohtaan jumiin eikä sinne pääse hallintaliittymän kautta tekemään mitään. On tämä Unifi-maailma hienoa. Eli mä palaan tähän heti kun saan tuon USG:n korjattua. huhhuh..
 
Liittynyt
17.10.2016
Viestejä
4 589
Seurasin näitä ohjeita:

Halusin ensiksi todentaa Puttylla, että kuvio toimii. Ei vaan toimi.
Public key viety Unifille ja keksitty käyttäjänimi.

Tämän jälkeen "save" ja olen vielä erikseen provisioinut kontrollerin.

Seuraavaksi Puttyyn:

Ja privatekey paikalleen:


Sitten Open.


Ja kertoo, että server (eli usg) hylkii avainta ja pyytää salasanaa, jota ei luontaisesti tunnuksella ole. :(
Kokeilin tätä oman USG:n kanssa. Toimii ihan sukkana. Mulla on siis julkinen avain tiedostossa muodossa
Koodi:
ssh-rsa AAAA******************************* avaimen_nimi
Tuohon Unifin kenttiin laitoin avaimen ssh-rsa alkuineena ja nimi-kenttään avaimen nimen. Mulla ei tosin ole Puttya vaan Linux tässä client-koneella.
 
Liittynyt
19.10.2016
Viestejä
1 916
Mä en tiedä uskallanko enää edes yrittää. Mä olen tänään valehtelematta palauttanut verkkoa 6h kuntoon. Ei siinä, harrastuksenahan tää menee kivasti mutta vois olla helpompaakin. Unifissa pää sekoaa siihen, kun adaptointi ei vaan onnistu. Sitten googlettamista, että mistä helvetistä se nyt tällä kertaa voi kiikastaa. Lopputulos oli siis se, että pistin koko verkon sileäksi kun tarkoitus oli aluksi yrittää vain unifi controller softan uudelleenasentamista, josko se korjaisi "Getting ready" ongelman. Loppu on historiaa, mutta tässä ollaan. Kaikki tämä alkoi siitä, kun menin sen ssh-rsa alkuisen koodirimpsun heittämään tuonne konfiin hallintaliittymästä ja klikkasin save.
 
Liittynyt
01.02.2017
Viestejä
747
Nyt on kyllä pää solmussa. Miten mä saan tästä datan ulos. Ei ihan promiset nyt oo sisäistynyt.


async function getData() {
const response = await api.getTodos()
const todos = await response.json()
}
 
Liittynyt
01.01.2018
Viestejä
1 117
Nyt on kyllä pää solmussa. Miten mä saan tästä datan ulos. Ei ihan promiset nyt oo sisäistynyt.


async function getData() {
const response = await api.getTodos()
const todos = await response.json()
}
Palautatko sää todos (return todos) vai onko tuo vain karsittu koodin pätkä?
 
Liittynyt
17.10.2016
Viestejä
14 550
async function getData() {
const response = await api.getTodos()
const todos = await response.json()
}
Nyt et palauta tuossa mitään (eli palautat undefined). Tuo vaatii returnin. Ja siellä kutsuvassa päässä pitää sitten awaitata tätä getData-funktiota, koska se palauttaa promisen.Jos ei näillä ala toimia, niin näytä enemmän koodia.
 
Liittynyt
01.02.2017
Viestejä
747
No en ole keksinyt muuta kuin "return todos". Varmaan ihan yksinkertaista, mutta en vaan ny oo hahmottanut ilman rautalankaa...

const api = new MockApi()
async function getData() {
const response = await api.getTodos()
const todos = await response.json()
return todos
}
const todos = await getData()
console.log(todos)


Hmm tuolla trulee virhe Uncaught Error: Module parse failed: The top-level-await experiment is not enabled (set experiments.topLevelAwait: true to enabled it)

Koodipohja on aavistuksen vanhaa reactia oleva paketti jota pitäis käyttää.

Edit: ilman tuota lisättyä awaittia tulee konsoliin


Promise { <state>: "pending" }

<state>: "fulfilled" jne ja näkyy ne mitä pitäi saada irtri
 
Viimeksi muokattu:
Liittynyt
17.10.2016
Viestejä
14 550
Hmm tuolla trulee virhe Uncaught Error: Module parse failed: The top-level-await experiment is not enabled (set experiments.topLevelAwait: true to enabled it)
Herjaa ettet voi käyttää awaitia top-levelissä eli funktioiden ulkopuolella. Yleensä ei ole mitään syytä tehdä tuollaista. Mitähän sä varsinaisesti yrität tehdä?

Ehkä voit korvata ton top-level-koodin perinteisellä promisella. Eli ihan vaan tyyliin:

JavaScript:
getData().then(data => console.log(data)).catch(e => console.error(e));
PS. Laita noi koodisi kooditägeihin. Älä tunge suoraan viestiin.
 
Liittynyt
01.02.2017
Viestejä
747
JavaScript:
getData().then(data => console.log(data)).catch(e => console.error(e));
Aaa... laitoin tolla sisäisellä koodilla. Toden totta kauniimpi.

Tän itseasiassa jo näin. Mutta nyt tulee se nolo kohta: Mites mä pääsen muokkaamaan tota dataa tai näyttämään sivuilla. *nolo*
 
Liittynyt
17.10.2016
Viestejä
14 550
Mites mä pääsen muokkaamaan tota dataa tai näyttämään sivuilla. *nolo*
Sun pitäis näyttää enemmän sitä koodia ja oikeasti kertoa, mitä sä olet tekemässä. Tää on vähän vaikea arvailla pala kerrallaan :)

Mitä tarkoitat muokkaamisella? Nyt sulla on joku mokki, josta toi data tulee. Haluat muokata, mitä sieltä mokista tulee? Vai mitä tarkoitit? Taas kerran, pitää nähdä vähän enemmän koodia. Mikä on MockApi(), tuleeko jostain kirjastosta?

Ja sun pitää näyttää se se komponentti, jonne ton haluat näkyviin. Sulla on siis joku React-appiksen runko?

Yksi helppo tapa on esim. käyttää komponentissa useEffect-hookia, jonka sisällä lataat datan ja tallennat vaikka komponentin tilaan setStatella. Oikeasti tuossa käytettäisiin jotain RTK Queryä tai vastaavaa, joka hoitaa sitten kakutukset sun muut ja helpottaa elämää. Mutta tällä pääsee alkuun:

JavaScript:
import { useEffect, useState } from "react";

export default function App() {
  const [data, setData] = useState({ state: "not_loaded" });
  useEffect(() => {
    setData({ state: "loading" });
    fetch("https://jsonplaceholder.typicode.com/todos/1")
      .then((response) => response.json())
      .then((data) => setData({ state: "loaded", data }))
      .catch((e) => setData({ state: "error" }));
  }, []);
  return (
    <div className="App">
      {data.state === "not_loaded" && <p>Not loaded</p>}
      {data.state === "loading" && <p>Loading...</p>}
      {data.state === "loaded" && <p>Got data: {data.data.title}</p>}
      {data.state === "error" && <p>Error!</p>}
    </div>
  );
}
 
Viimeksi muokattu:
Liittynyt
07.01.2021
Viestejä
678
Itse ainakin luen ihan vaan response.data:n suoraan muuttujaan. Siis tähän malliin:
Koodi:
    useEffect(() => {
        async function getWork() {
            let url = baseURL + params.workId?.toString();
            try {
                const response = await getApiContent(url, user);
                setWork(response.data);
            } catch (e) {
                console.error(e);
            }
        }
        getWork();
    }, [params.workId, user])
Seuraavaksi pitäisi varmaan alkaa tutustua React Query Hookseihin kun pitäisi kohta alkaa tekemään ylläpitotoimintoja.
 
Liittynyt
01.02.2017
Viestejä
747
Jeh. Hermot meinas mennä ja menikin, mutta pakkomielle voitti ja vihdoin tulee todot läpi. Kiitoksia johdatuksesta.

JavaScript:
const api = new MockApi()
const TodoItem  = () => {
const [data, setData] = useState([])
const getData = async () => {

  const response = await api.getTodos()
  const data = await response.json()
  setData(data)

}
  useEffect(() => {
  getData()
  }, [])

  return data.map((data, index) => (
    <ul>
      <li key={index}>{data.task}</li>
    </ul>
  )
  )
}

export default TodoItem
Tosin tuo kun on TodoItem, niin täytyy muokata kun tulee kaikki todot tuohon. Ja muutakin. Laitetaan nyt tuo tännekin turvaan :D

Tuo oikeastaan summasi silmät: TypeError: .map is not a function - React application
Paitsi että kyseiseen ongelmaan mulla liittyi ettei tullut mitään sisältöä.
Edit: vaikeinta tuossa näin ensimmäistä kertaa reactin parissa että täytyi saada nähdä esimerkki jossa oli kaikki palikat.
 
Liittynyt
07.01.2021
Viestejä
678
Tässä muuten ainakin minulle hyvin mielenkiintoinen video tilanhallinnasta Reactissa:
.
 
Liittynyt
01.01.2018
Viestejä
1 117
Tässä muuten ainakin minulle hyvin mielenkiintoinen video tilanhallinnasta Reactissa:
.
Olen käyttänyt react querya ja zustandia omissa projekteissa, molemmista olen tykännyt. Nyt olen tallentanut formi datan localstorageen, mutta en tiedä onko se kovin hyvä ratkaisu, vai olisiko pitänyt tallentaa serveri puolelle kuitenkin.
 
Liittynyt
07.01.2021
Viestejä
678
Tuossa siis olennaista oli, että jos tarvitsee vain hanskata server side statea, niin React Query riittää. Ja yleensä tuon mukaan tämä on tilanne. Sitten jos on jotain lokaaleja stateja, niin jos useState riittää, niin käyttää sitä. Jos ei niin sitten nuo kaksi vaihtoehtoa (Zustand ja mikäs se toinen oli). Redux on liian raskas ja mutkikas useimpiin käyttötarkoituksiin.
 
  • Tykkää
Reactions: hmb
Liittynyt
19.10.2016
Viestejä
1 916
Kokeilin tätä oman USG:n kanssa. Toimii ihan sukkana. Mulla on siis julkinen avain tiedostossa muodossa
Koodi:
ssh-rsa AAAA******************************* avaimen_nimi
Tuohon Unifin kenttiin laitoin avaimen ssh-rsa alkuineena ja nimi-kenttään avaimen nimen. Mulla ei tosin ole Puttya vaan Linux tässä client-koneella.
Nyt uskaltauduin taas testaamaan, ja meikäläisen USG kaatuu kun sinne tallentaa SSH-avaimen. Jää jumiin "getting readyyn" ja laite jää siihen tilaan todennäköisesti ikuiseksi ajaksi. Näin tapahtui viime kerrallakin. Kirjoittaakohan tuo ssh key lisääminen config.json fileen jotain joka jumittaa purkin.
Tällä kertaa laitoin jäitä hattuun. Menin konfiguraatioon ja poistin ssh key:n. Sen jälkeen katsoin onnistuuko adaptointi, eikä onnistunut. Tämän jälkeen vedin kylmästi virrat purkista pois..sitten 5min epätietoisuus ja koko verkko näytti jäävän kadoksiin. Lopulta USG:hen syttyi valkoien valo purkin päälle, kaikki laitteet ml. usg ovat "Online" tilassa ja verkko futaa. En missään nimessä mene enää kertaakaan tätä kokeilemaan, mutta hämmästelen helvetisti.
 
Liittynyt
07.01.2021
Viestejä
678
Mitä tuo "getting ready"-jumi tarkoittaa? Ei toimi netti-UI etkä pääse SSH:lla sisään?
 
Liittynyt
16.11.2020
Viestejä
2 566
Ei kai yhden SSH-avaimen viemisen pitäs normaalisti noin vaikeaa olla.. Jätin aikaisemmin kommentoimatta, mutta tuumasin, että tekisköhän tuo Windows-ympäristö nyt jotain tepposiaan avaimen luonnissa ja avaintiedostojen käsittelyssä.. Ts. että tuleeko luoduksi oikeanlainen avain ja että tiedosto-oikeudet eivät ole liian avoimia. Linux-ympäristössä ja ssh-keygenillä on vaikea tehdä mitään väärin, mitä nyt joku paikka saattaa haluta just tietynlaista avainta, mikä pitää osata kertoa luodessa.

Onko toi laite varmasti kunnossa ja lokittaako se jotain johonkin, mistä vois nähdä, mihin laite jää jumiin?
 
Liittynyt
17.10.2016
Viestejä
14 550
Tästä ketjusta voi myös saada vastauksia jos tuossa reitittimessä on joku ongelma. Ei reitittimen pitäisi kaatua siitä että sinne vie (edes vääränlaisen) SSH-avaimen. Kuulostaa bugilta laitteessa. Onko firmis uusin?

 
Liittynyt
19.10.2016
Viestejä
1 916
Moikka @pappatech ja @Paapaa .
Firmikset uusimmat ja näin siinä kyllä käy. Tässä on kyllä vahva user error myös läsnä. Toimin molemmilla kerroilla näin. Kopioin avaimen unifin konfiin ja tallennan. Tähän mennessä kaikki on ok. Menee syystä x muokkaamaan kyseistä avainta (ekalla kerralla muokkasin avainta, tokalla nimeä) ja klikkaa save, tämän jälkeen Unifi tallentaa muutoksen ja poistaa avaimen etuosasta ssh rsa -alun. Tämä on todella outoa, mutta nyt kaksi kertaa kokeillut ja todennut että avaimen etuliite katoaa jos muokkauksen tekee., Kun tuo etuliite poistuu avaimesta, se pitää sinne käsin taas lisätä ja uudelleentallentaa ja tämä johtaa USG:n kaatumiseen. Pitäisi uskaltaa testata vielä ilman ylimääräistä säätämistä. Olen tainnut molemmilla kerroilla nimenomaan muokata tallennuksen jälkeen avainta, joka lopulta johtaa USG:n kuolemiseen.
 
Liittynyt
19.10.2016
Viestejä
1 916
Asiasta kolmanteen.
Nyt vuorossa yrittää ymmärtää
1) missä muodossa POST-komento pitää lähettää jos API-ohjeessa lukee seuraavaa:

External Open Permissions a.k.a allow Pindora to open the lock
With this endpoint you will be able to set a permission for Pindora to open the lock. After setting the permission for a Pindora using this endpoint, the Pindora will behave the same way as it would if the user would have typed in a PIN code.

In other words, you just set the external open permission (for example through your own app) and then knock on the door. Pindora will open the lock.
To create an external permission
POST https://admin.pindora.fi/api/integration/openpermissions
Required scope
dooropengrand.create

To issue a new external permission for Pindora to open, the client needs to send a POST request with following request body parameters as JSON to https://admin.pindora.fi/api/integration/openpermission :

ParameterRequiredTypeDescription
pindora.idYes

Note: In the next minor release, this parameter will be optional and only mandatory if more than one Pindora exists.
stringID of the Pindora you want to give the permission to.
idYesstringYour own ID for this permission. It can be whatever you want to map it to your internal transaction logs

Examples
Request example using Curl

curl --request POST \
--url https://admin.pindora.fi/api/integration/openpermissions \
--header 'Pindora-Api-Key: d217d336-550g-4dd3-b834-b7deb95b7607' \
--header 'content-type: application/vdn.pindora.v1+json' \
--data '{"pindora":{"id":"66c1b208-7b31-4747-a331-fc9753634104"},"id": "ext-1"}'

Full request data sent (example)

POST /api/integration/openpermissions HTTP/1.1
Host: admin.pindora.fi
Accept: application/vdn.pindora.v1+json
Pindora-Api-Key: d217d336-550g-4dd3-b834-b7deb95b7607

{
"pindora": {
"id": "66c1b208-7b31-4747-a331-fc9753634104"
},
"id": "ext-1"

Oletan, että tuossa on ihan selkeä ohje miten ja mitä pitää tehdä mutta minä en ymmärrä. Olenko käsittänyt oikein, että post-komento pitäisi olla sellainen jonka toimivuuden voi todentaa lähettämällä selaimen osoiteriviltä komennon. Ja kun tuo komento toimii, niin sitten voi lopuksi pähkäillä millä työkalulla ja miten aikoo POST-komentoa milloinkin lähetellä. Tämä jälkimmäinen on menossa kotiautomaation webocoren kautta käyttöön, mutta nyt pitäisi ymmärtää mikä on komennon oikea muoto. Osaisiko joku hieman avittaa?
 
Liittynyt
17.10.2016
Viestejä
5 334
Asiasta kolmanteen.
Nyt vuorossa yrittää ymmärtää
1) missä muodossa POST-komento pitää lähettää jos API-ohjeessa lukee seuraavaa:

External Open Permissions a.k.a allow Pindora to open the lock
With this endpoint you will be able to set a permission for Pindora to open the lock. After setting the permission for a Pindora using this endpoint, the Pindora will behave the same way as it would if the user would have typed in a PIN code.

In other words, you just set the external open permission (for example through your own app) and then knock on the door. Pindora will open the lock.
To create an external permission
POST https://admin.pindora.fi/api/integration/openpermissions
Required scope
dooropengrand.create

To issue a new external permission for Pindora to open, the client needs to send a POST request with following request body parameters as JSON to https://admin.pindora.fi/api/integration/openpermission :

ParameterRequiredTypeDescription
pindora.idYes

Note: In the next minor release, this parameter will be optional and only mandatory if more than one Pindora exists.
stringID of the Pindora you want to give the permission to.
idYesstringYour own ID for this permission. It can be whatever you want to map it to your internal transaction logs

Examples
Request example using Curl

curl --request POST \
--url https://admin.pindora.fi/api/integration/openpermissions \
--header 'Pindora-Api-Key: d217d336-550g-4dd3-b834-b7deb95b7607' \
--header 'content-type: application/vdn.pindora.v1+json' \
--data '{"pindora":{"id":"66c1b208-7b31-4747-a331-fc9753634104"},"id": "ext-1"}'

Full request data sent (example)

POST /api/integration/openpermissions HTTP/1.1
Host: admin.pindora.fi
Accept: application/vdn.pindora.v1+json
Pindora-Api-Key: d217d336-550g-4dd3-b834-b7deb95b7607

{
"pindora": {
"id": "66c1b208-7b31-4747-a331-fc9753634104"
},
"id": "ext-1"

Oletan, että tuossa on ihan selkeä ohje miten ja mitä pitää tehdä mutta minä en ymmärrä. Olenko käsittänyt oikein, että post-komento pitäisi olla sellainen jonka toimivuuden voi todentaa lähettämällä selaimen osoiteriviltä komennon. Ja kun tuo komento toimii, niin sitten voi lopuksi pähkäillä millä työkalulla ja miten aikoo POST-komentoa milloinkin lähetellä. Tämä jälkimmäinen on menossa kotiautomaation webocoren kautta käyttöön, mutta nyt pitäisi ymmärtää mikä on komennon oikea muoto. Osaisiko joku hieman avittaa?
Käsittääkseni selaimen osoiteriviltä ei suoraan voi POST-requestia tehdä (tietty javascript-kikkailulla onnistuu). Eli tuolla curlilla, wgetillä tai vastaavalla tai siten tekemällä koneelle jonkun html-tiedoston jota aukoo selaimella.
 
Liittynyt
17.10.2016
Viestejä
4 589
Ainakin Firefoxilla on nykyisin helppo tehdä erilaisia requesteja kun avaa dev toolin (F12) -> Network välilehti -> + ikoni (New request)

Tehdyt requestit on myös helppo kopioda suoraan curl-komennoiksi kun klikkaa requestia taulukossa hiiren oikealla korvalla.
 
Liittynyt
17.10.2016
Viestejä
14 550
Olenko käsittänyt oikein, että post-komento pitäisi olla sellainen jonka toimivuuden voi todentaa lähettämällä selaimen osoiteriviltä komennon
Selain lähettää osoiteriviltä GET-pyynnön, ei POST-pyyntöä. Suosittelen lämmöllä asentamaan esim. Postmanin: Postman Tuolla on helppo luoda juuri halutunlaisia kyselyitä ja niille parametreja, tallentaa ne kansioihinsa jne. Tehty juuri APIen testaamiseen, debuggaukseen, dokumentointiin jne. Yksinkertaisimmillaan kirjoitat osoitteen, valitsen oikean metodin, asetat headerit ja lähetät pyynnön ja katsot mitä tuli ulos.

Toinen suosittu on Insomnia: The API Design Platform and API Client
 
Liittynyt
19.10.2016
Viestejä
1 916
Mutta ymmärränkö oikein, että nämä esimerkit ovat jo ihan aidossa muodossaan olevia komentoja?

POST /api/integration/openpermissions HTTP/1.1
Host: admin.pindora.fi
Accept: application/vdn.pindora.v1+json
Pindora-Api-Key: d217d336-550g-4dd3-b834-b7deb95b7607

{
"pindora": {
"id": "66c1b208-7b31-4747-a331-fc9753634104"
},
"id": "ext-1"

Eli vaikkapa ehdotetussa Postmanissa em. esimerkkilauseke pitäisi toimia? Toki minun pitäisi muuttaa api-key ja id oikeaksi, mutta siis muuten good to go.
 
Liittynyt
17.10.2016
Viestejä
14 550
Mutta ymmärränkö oikein, että nämä esimerkit ovat jo ihan aidossa muodossaan olevia komentoja?
Tuo curl-alkuinen on komento, jonka voi antaa jossain Linuxissa ja se toimii suoraan. Tuo POST-alkuinen ei ole mikään komento, vaan siinä vaan listataan pyynnön tarvitsemat tiedot. Ja ne pitää sitten syöttää oikealla tavalla riippuen millä sen pyynnön sitten teetkin (curl, Postman, JS:n fetch jne.). Postmanissa esim. osoiteriville kirjoittaisit osoitteen jossaon siis protokolla, host että polku, esim: https://admin.pindora.fi/api/integration/openpermissions. Sitten data (tuo {...}-objekti) laitetaan Postmanissa Body->Raw->Json. Ihan copy-pastella. Postmanissa on myös oma paikkansa headereille, johon tulee tuo Pindora-Api-Key ja Accept.
 
Liittynyt
19.10.2016
Viestejä
1 916
Tuo curl-alkuinen on komento, jonka voi antaa jossain Linuxissa ja se toimii suoraan. Tuo POST-alkuinen ei ole mikään komento, vaan siinä vaan listataan pyynnön tarvitsemat tiedot. Ja ne pitää sitten syöttää oikealla tavalla riippuen millä sen pyynnön sitten teetkin (curl, Postman, JS:n fetch jne.). Postmanissa esim. osoiteriville kirjoittaisit osoitteen jossaon siis protokolla, host että polku, esim: https://admin.pindora.fi/api/integration/openpermissions. Sitten data (tuo {...}-objekti) laitetaan Postmanissa Body->Raw->Json. Ihan copy-pastella. Postmanissa on myös oma paikkansa headereille, johon tulee tuo Pindora-Api-Key ja Accept.
Okei, no sitten olen jo lähellä.

1661248876852.png


Valittaa API keyn puuttumisesta. Onkohan minulla jokin merkkivirhe vai lähtökohtaisesti isompi ongelma käsillä?
 

Liitteet

Liittynyt
19.10.2016
Viestejä
3 411
Valittaa API keyn puuttumisesta. Onkohan minulla jokin merkkivirhe vai lähtökohtaisesti isompi ongelma käsillä?
Olikohan tuo bulk-edit missä näkee noi kaikki tekstimuodossa, tsekkaisin ensimmäisenä sieltä, ettei ole mitään extra-välilyöntejä tms. Ja, että mahdolliset viivat sun muut 'tavallisia' viivoja, ettei copy-pastessa ole tapahtunut mitään.
 
Liittynyt
17.10.2016
Viestejä
4 589
Okei, no sitten olen jo lähellä.



Valittaa API keyn puuttumisesta. Onkohan minulla jokin merkkivirhe vai lähtökohtaisesti isompi ongelma käsillä?
Älä laita sitä dataa headereihin vaan tuonne body-välilehdelle vai onko se sielläkin?

Edit: ei kun äh, siis api-keystä se valittaa. Tää ei sitä toki ratkaise
 
Liittynyt
19.10.2016
Viestejä
1 916
Älä laita sitä dataa headereihin vaan tuonne body-välilehdelle vai onko se sielläkin?
Äh. Juuri ymmärsin saman.
Eli kaksi headeria, ja yksi data.

Laitoin bodyn alle seuraavasti:
1661249450778.png


Ja sama lopputulos. Onko tuolla nyt { tai " merkkejä jotenkin väärin. Kopioin rivin suoraan sellaisenaan ja samalla periaatteella kuten header-kenttiinkin. Hieman hämmentää kun value kohdassa on ohjeen mukaisesti kaksi id:tä, joissa toisessa id ja toisessa vapaavalintainen nimi.
 
Liittynyt
17.10.2016
Viestejä
4 589
Äh. Juuri ymmärsin saman.
Eli kaksi headeria, ja yksi data.

Laitoin bodyn alle seuraavasti:


Ja sama lopputulos. Onko tuolla nyt { tai " merkkejä jotenkin väärin. Kopioin rivin suoraan sellaisenaan ja samalla periaatteella kuten header-kenttiinkin. Hieman hämmentää kun value kohdassa on ohjeen mukaisesti kaksi id:tä, joissa toisessa id ja toisessa vapaavalintainen nimi.
Älä laita form-dataa vaan täppää tuo raw ja siihen se pelkkä JSON

Mutta selvästi ongelma on nyt myös siinä headereissa olevassa api-keyssa.
 
Liittynyt
19.10.2016
Viestejä
1 916
Menee ehkä jo yli hilseen, eli body kohdassa tämä olisi oikea muoto vai? Jos on, niin API-avain herja edelleenkin tulee ja se sitten johtunee jostain muusta syystä.
1661249991111.png
 
Toggle Sidebar

Statistiikka

Viestiketjut
237 473
Viestejä
4 163 448
Jäsenet
70 414
Uusin jäsen
O&G

Hinta.fi

Ylös Bottom